Reactor
Reactor
What Reactor is
Reactor 只有这三个特点:
脚本编译器对 JSX 的原生支持。JSX 语法和表达式是 Sciter 中 JavaScript 的组成部分。
真实 DOM/虚拟 DOM 对账的原生实现。
element.patch(jsx-expression)
获取 vdom(JSX 表达式)并根据 JSX 表达式修改 DOM。
What Reactor is not
Reactor 不是一个框架或库。它只是 SciterJS 的一组内置功能
Hello World
最小的 Sciter's Reactor 示例:
document.body.patch(<body>Hello, world!</body>);
如您所料,执行此行将生成以下 DOM 结构:
<body>
Hello, world!
</body>
这里的脚本表达 <body>Hello, world!</body>
式是 JSX 文本。
注意:您不需要任何外部预编译器来运行此代码 - JSX 是 SciterJS 的一个组成部分。
If Reactor is just a set of features ...
那么这意味着你不仅可以在 ReactJS 的情况下使用这些功能。
例如,JSX 可用于需要填充现有 DOM 的情况。
例如,您可以调用 element.append(<li>new list item</li>)
以将新项添加到列表中。
Sciter::Reactor and Facebook::ReactJS
Sciter's Reactor 使用与 ReactJS 大致相同的成语和思想集。
但是 Facebook::ReactJS 是一个 JavaScript 库,而 SciterJS::Reactor 是两件事的原生实现:JSX 和 element.patch()。令人惊讶的是,这就是在 SciterJS 中实现 ReactJS 的几乎所有功能所需的全部内容。
Further reading
JSX - 基本术语和基本原理
渲染元素和
element.patch()
调和器功能组件 - 功能组件和类组件
组件状态和生命周期 - componentUpdate(state) 等。
信号 - 内置信号实现
内部化支持 - 内置 i18n 原语