React可以用于服务器端渲染。那是什么意思?
该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
我是React和Redux的新手。虽然我知道React只是一个视图层。但是我看到一个术语“
React可以在服务器端渲染中使用”。这是什么意思,以及它如何使用nodejs在后台运行。有人可以帮助我弄清“服务器端呈现什么是反应”这一事实。