我见过prerender.io是一个基于phantom.js的解决方案,而paypal的反应引擎似乎更轻松的解决方案。我需要决定使用哪一个 prerender.io优于反应引擎有什么优势? SPA和无SPA。
答案 0 :(得分:1)
请记住,React应用程序中的同构体系结构会增加一些复杂性,比较这两个项目,例如(免责声明:我是作者):
https://github.com/kriasoft/react-starter-kit - Isomorphic React app
https://github.com/kriasoft/react-static-boilerplate - 单页反应应用(SPA)
答案 1 :(得分:0)
如果您正在构建同构反应应用程序,那么react-engine或您自己渲染初始页面的方式绰绰有余。
如果您可以使用像prerender.io这样的付费服务,那么它将使用无头webkit浏览器(例如phantom.js)执行相同的操作。 Prerender.io在无头webkit浏览器(如phantomjs)中打开网页,并将呈现的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。