同构反应,prerender.io优于反应引擎的优势?

时间:2015-06-15 11:24:21

标签: reactjs prerender react-engine

我见过prerender.io是一个基于phantom.js的解决方案,而paypal的反应引擎似乎更轻松的解决方案。我需要决定使用哪一个 prerender.io优于反应引擎有什么优势? SPA和无SPA。

2 个答案:

答案 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.renderToStringReact. renderComponentToStaticMarkup

轻松呈现服务器中的Component

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

 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。