文档手册

Reactor

2024-07-18 14:11:01

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