Ale*_*Acc 9 template-engine reactjs isomorphic-javascript react-engine
我想知道使用paypal的React Engine(https://github.com/paypal/react-engine),但我有些疑惑:
与Handlebars等其他模板引擎相比有什么好处?
为什么要上传.jsx文件,而不是(jsx预编译/转换).js文件?(这个应该更快,因为不必处理服务器上的转换).
我一直在研究,但我感到困惑.
谢谢
react-engine
和模板引擎之间的主要区别仅在于浏览器允许用户与浏览器页面进行交互时。然而,机器如何访问个人数据很重要。
假设我们要运行一个简单的网页。只是一个滚动和打开的文本信息。使用模板引擎,比如Handlebars.js,通常,当浏览器请求到达服务器时,它会尝试弄清楚如何响应以及做什么。也就是说,模板引擎可以从存储在本地和可访问源中的文件中引用现有的提取数据。这些加载所有定义的数据对网站模板文件(即 head
,meta
,title
,等),具有渲染不完整的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
渲染相同的事情。也许不是同样容易或同样快,但两种工具都是合格的。您还可以阅读另一大螺纹在这个题目。
归档时间: |
|
查看次数: |
5091 次 |
最近记录: |