该
react-dom包装包括一个
server模块。该模块允许您使用将应用程序呈现为简单的HTML字符串
reactDOMServer.renderTostring()。基本上是给定的一组视图的快照
props:
https://facebook.github.io/react/docs/top-level-
api.html#reactdomserver.rendertostring
另外,此函数从生成的字符串中计算出唯一的哈希并将其附加到html。在 客户端,
react可以“拾取”服务器生成的HTML,并将其用作其“第一个呈现器”。
尽管客户端首先渲染和服务器渲染需要产生完全相同的输出,以做出反应以在客户端将其拾取。React可以通过生成的哈希值对此进行检查:客户端react也将生成html字符串(无需修改实际DOM,我认为这仅在虚拟DOM上完成)。现在,它还可以根据其虚拟DOM计算哈希值,并将其与服务器渲染的哈希值进行比较。如果它们匹配,则无需进行渲染。如果不这样做,客户端的反应将丢弃服务器生成的DOM并将其替换为其版本(并打印出错误/警告)。
与redux结合使用,这意味着除了呈现HTML外,您还需要将商店(
store.getState())的状态传递给客户端。然后,客户端可以在创建其Redux存储实例时将此序列化状态用作初始状态。这将导致两个渲染(客户端+服务器)匹配。
如果您不需要客户端执行任何操作,而只想在服务器端创建静态标记,则
react-dom可以提供以下
renderToStaticMarkup()功能:
https://facebook.github.io/react/docs/top-level-
api.html#reactdomserver.rendertostaticmarkup



