• Stars
    star
    158
  • Rank 236,445 (Top 5 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Full reactivity JS/TS framework. Lightweight replacement of React + MobX + React Router. Very small and fast !!

Revact npm CircleCI

Lightweight replacement of React + MobX + React Router (I hope in future Angular/Vue), which does not use the virtual DOM comparison, but the re-render of only the changed parts. Abandon the HTML template in favor of their interpretation in JS, give to us tree-shaking is components/templates and the speed of work increases since the time to parse the template is zero.

The library allows you to create quick and responsive interfaces using only JS / TS. With this you will get the minimum application size, speed and ease of development.

OFFICIAL BENCHMARK RESULTS(old name faster-dom)

Usage

import { bootstrap, rValue } from 'revact';

bootstrap('#app', () => {
  const counter = rValue(0)
    return {
      tag: "div",
      textValue: counter,
      listeners: {
        click: () => {
          counter.value +=1
        }
      }
    }
  }
)

📺 DEMO 📺 DEMO at StackBlitz

Features

  1. Size - 4.1 kB or 1.38 kB gzipped.
  2. The library rewrites only changes and only when it is necessary.
  3. Performance - going to guarantee 60 fps.
  4. Names of imported functions and classes are not finally and can be discussed.
  5. There is a tree-shaking for components and templates !!!.
  6. Router + Resolver support!

Performance

CODE OF THE TESTS

OFFICIAL BENCHMARK RESULTS(old name faster-dom

How it works

Here will be good api

Motivation

  1. The performance of user interaction and interface speed.
  2. The large size of top frameworks (Angular / React / VueJs).
  3. Implements the component approach of creating interfaces with optimal speed, and the least number of a possible hacks.
  4. The ability of support a tree-shaking in a component's templates.
  5. Component should be splited by a file (template/reactive/listeners).

Current Status

  1. The support of events.
  2. Lifecycle hooks onInit and onDestroy.
  3. The support of inputs.
  4. if condition and for directive.
  5. Reactive classes and attributes bindings.
  6. Supports router

TODO (contributing is appreciated)

  1. Html transpiler (https://github.com/RyuuGan/html2FastDom)

Help me please if you are interested.