12

我想使用 paypal 的 React 引擎(https://github.com/paypal/react-engine),但我有一些疑问:

与 Handlebars 等其他模板引擎相比有什么好处?

为什么要上传 .jsx 文件,而不是(jsx 预编译/转换的).js 文件?(这个应该更快,因为不必处理服务器上的转换)。

我一直在研究,但我很困惑。

谢谢

4

1 回答 1

10

和模板引擎之间的主要区别react-engine仅在于浏览器允许用户与浏览器页面交互时。尽管如此,重要的是机器如何访问个人数据。

假设我们要运行一个简单的网页。只是一个滚动和打开的文本信息。使用像Handlebars.js这样的模板引擎,通常,当浏览器请求到达服务器时,它会尝试弄清楚如何响应和做什么。也就是说,模板引擎可以引用从存储到本地和可访问源中的文件中提取的现有数据。这些正在加载有关站点模板文件的所有已定义数据( headmetatitle等),并呈现不完整的HTML字符串。然后将此HTML发送回浏览器并呈现。

react-engine在同一方面,它使用相同的渲染机制。但是,它不是模板引擎语义,而是使用JSX,或者如果我们愿意,我们也可以使用JavaScript. 因此JSX,它比模板引擎更广泛。Hajime Yamasaki Vukelic的一篇很棒的文章从JSX 和 HTML 模板之间的不同角度遵守了关注点的分离。

使用模板引擎,您向库提供一个字符串(通常但不一定是 HTML),然后将其转换为一段 JavaScript 代码,在执行时生成虚拟 DOM 结构。在设计时,模板只是字符串,所以我们无法直接访问周围的代码。例如,我们不能导入辅助函数或调用方法。这些事情只能通过称为指令的抽象来实现(可能还有其他名称,具体取决于您来自哪里)。指令是 HTML 和 JavaScript 之间的粘合剂。

到目前为止一切顺利,两种解决方案之间没有相关的区别。指向下一个或上一个简单网页的链接只是简单的<a href="/webpage>Next</a>元素。

目前,当我们决定实施一些交互时,react-engine将是赢家。虽然react-engine渲染不需要JavaScript在客户端运行,但它将启用搜索引擎优化

模板引擎也有这种SEO支持,但影响较小。我们不能在这里全部运行JavaScript来渲染HTML。即使是像这样jQuery的库也需要实时访问浏览器窗口对象,这在服务器端无法轻松模拟。因此模板引擎的生产力会降低。

总之,模板引擎可以做与react-engine渲染相同的事情。也许不是同样容易或同样快,但两种工具都是合格的。您还可以阅读有关此主题的另一个精彩主题

于 2018-02-09T19:37:12.680 回答