2

我见过 prerender.io 是一个基于 phantom.js 的解决方案,而 paypal 的 react-engine 似乎更轻量级的解决方案。我需要决定使用哪一个。
prerender.io 与 react-engine 相比有什么优势?SPA 和没有 SPA。

4

2 回答 2

1

如果您正在构建一个同构的反应应用程序,那么反应引擎或您自己的渲染初始页面的方式就足够了。

如果您可以使用 prerender.io 之类的付费服务,那么它将使用无头 webkit 浏览器(例如 phantom.js)执行相同的操作。Prerender.io 在 phantomjs 等无头 webkit 浏览器中打开网页,并将呈现的 HTML 返回给搜索引擎。在此过程中,它会缓存呈现的 HTML。因此,后续请求将得到更快的服务。它对几乎所有使用 AngularJS、Backbone 等构建的 SPA 应用程序都很有用。

但是对于反应,我认为这是一种矫枉过正的行为,而且当您可以轻松完成时,也不需要付费服务。React 为您提供 API 以轻松使用React.renderToString和渲染服务器中的组件React. renderComponentToStaticMarkup

非常简单的方法如下所示:

 Router.run(routes, url , function(Handler, routerState) {
        var handlerElement = React.createElement(Handler);
        var html = React.renderToString(handlerElement);
        res.send(html);
    });

这只是我最近构建的同构应用程序的一个片段。

你可以参考ConMAN一个同构的 reactjs 应用程序,它是我使用以下技术堆栈构建的:Koa、React、React-router、Flux Architecture 和 Browserify。

于 2015-06-15T13:49:56.533 回答
1

请记住,React 应用程序中的同构架构增加了一些复杂性,例如比较这两个项目(免责声明:我是作者)

https://github.com/kriasoft/react-starter-kit - 同构 React 应用程序
https://github.com/kriasoft/react-static-boilerplate - 单页 React 应用程序 (SPA)

于 2016-09-19T07:06:27.153 回答