The Reactor is just these three features:
Element.merge(velement)
is all about this.class Reactor.Component
implemented in sciter:reactor.tis. You can see its source here.The smallest Sciter's Reactor example:
$(body).content( <h1>Hello, world!</h1> );
As you would expect, execution of this line will produce this DOM structure:
<body> <h1>Hello, world!</h1> </body>
Script expression <h1>Hello, world!</h1>
here is a SSX literal.
Note: you do not need any external pre-compilers to run this code - SSX is an integral part of Sciter's Script starting Sciter version 4.4.0.0. Parsing and DOM updates and reconciliation is also implemented natively and does not require any additional libraries.
Then it means that you can use these features not just for ReactJS alike cases.
SSX, for example, can be used in cases where you need to populate existing DOM. All places where you use Element.create()
or Element.append()
are good candidates for SSX literals usage.
And Element.merge()
can not just update real DOM from virtual DOM definitions (SSX) but can be used for example when you need to compare or merge two real DOM trees.
Sciter's Reactor uses roughly the same set of idioms and ideas as ReactJS.
But Facebook::ReactJS is a JavaScript library and Sciter::Reactor is a native implementation of just two things : SSX and Element.merge(). And that is all needed to achieve ReactJS almost all features in Sciter.