react引擎与其他模板引擎

IT技术 reactjs template-engine isomorphic-javascript react-engine
2021-05-20 18:18:12

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

与 Handlebars 等其他模板引擎相比有哪些优势?

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

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

谢谢

1个回答

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

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

总之,模板引擎可以做与react-engine渲染相同的事情也许不是同样容易或同样快,但两种工具都是合格的。您还可以阅读另一大螺纹在这个题目。