Revact
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
yarn add [email protected]
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
- Size - 4.1 kB or 1.38 kB gzipped.
- The library rewrites only changes and only when it is necessary.
- Performance - going to guarantee 60 fps.
- Names of imported functions and classes are not finally and can be discussed.
- There is a tree-shaking for components and templates !!!.
- Router + Resolver support!
Performance
OFFICIAL BENCHMARK RESULTS(old name faster-dom
How it works
Here will be good api
Motivation
- The performance of user interaction and interface speed.
- The large size of top frameworks (Angular / React / VueJs).
- Implements the component approach of creating interfaces with optimal speed, and the least number of a possible hacks.
- The ability of support a tree-shaking in a component's templates.
- Component should be splited by a file (template/reactive/listeners).
Current Status
- The support of events.
- Lifecycle hooks
onInit
andonDestroy
. - The support of inputs.
if
condition andfor
directive.- Reactive classes and attributes bindings.
- Supports router
TODO (contributing is appreciated)
- Html transpiler (https://github.com/RyuuGan/html2FastDom)
Help me please if you are interested.