我见过 prerender.io 是一个基于 phantom.js 的解决方案,而 paypal 的 React-engine 似乎是更轻的解决方案。我需要决定使用哪一个。
prerender.io 相对于 React-engine 有什么优势?
适用于 SPA 和无 SPA。
最佳答案
如果您正在构建同构的 React 应用程序,那么 React-engine 或您自己的渲染初始页面的方式就足够了。
如果您可以使用 prerender.io 等付费服务,那么它也会使用 phantom.js 等 headless Webkit 浏览器执行相同的操作。 Prerender.io 在 headless webkit 浏览器(例如 phantomjs)中打开网页,并将渲染的 HTML 返回给搜索引擎。在此过程中,它会缓存渲染的 HTML。因此后续请求会得到更快的处理。它对于几乎所有使用 AngularJS、Backbone 等构建的 SPA 应用程序都很有用。
但是对于 React,我认为这是一种矫枉过正,而且当你可以轻松做到这一点时,也不需要付费服务。 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。
关于reactjs - 同构React,prerender.io相对于react-engine的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30843935/