React服务器和客户端呈现

时间:2016-04-08 21:13:31

标签: reactjs webpack

使用https://github.com/ayoubdev/reactjs-isomorphic-starterkit作为boiletplate。

我试图找出如何将客户端软件包注入服务器呈现过程。

由于服务器和客户端的webpack构建是完全分离的,有一个简单的技巧来实现这个目标吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我对这个样板回购的具体细节不太了解。但我可以尝试解释主要想法,你可以深入挖掘。

基本思想是,使用一个bundle(在这种情况下,使用webpack,gulp,grunt,只要你转换,其他任何东西都很好)并根据你的React组件的入口点构建一个bundle。然后通过脚本标记在一些html文件中链接此包。

对于服务器端,您可以使用ReactDOMServer.renderToString。导入组件,将它们传递给ReactDOM.renderToString。将HTML传递给像ejs这样的模板,或使用原始HTML字符串并从服务器调用React.render。

客户端。

在您的示例中,输入点为here并挂钩here。请注意<div class= "app">标记。这是我们在入口点引用的标记。我们还通过脚本标记client.bundle.js从webpack引用我们的捆绑j。

服务器端

在您的示例中,相关代码为here。请注意renderComponent函数。它基于ReactDOMServer.renderToString提供的组件的HTML构建字符串,该字符串在Line 39上调用。然后它会将所有html作为响应发送回res.send

这个blog article使用jade作为示例,如果你发现这个样板,你可以使用它作为替代。