ReactDOMServer
ReactDOMServer
对象使你能够将组件渲染为静态标记。 通常,它在 Node 服务器上使用:
// ES modules
import ReactDOMServer from 'react-dom/server';
// CommonJS
var ReactDOMServer = require('react-dom/server');
概述
ReactDOMServer
对象允许您在服务器上渲染组件。
这些附加的方法依赖于 仅在服务器上可用 的包 (stream
),并且不能在浏览器中工作。
参考
renderToString()
ReactDOMServer.renderToString(element)
将 React 元素渲染到其初始 HTML 中。 该函数应该只在服务器上使用。 React 将返回一个 HTML 字符串。 您可以使用此方法在服务器上生成 HTML ,并在初始请求时发送标记,以加快网页加载速度,并允许搜索引擎抓取你的网页以实现 SEO 目的。
如果在已经具有此服务器渲染标记的节点上调用 ReactDOM.hydrate()
,React 将保留它,并且只附加事件处理程序,从而使您拥有非常高性能的第一次加载体验。
renderToStaticMarkup()
ReactDOMServer.renderToStaticMarkup(element)
类似于 renderToString
,除了这不会创建 React 在内部使用的额外DOM属性,如 data-reactroot
。 如果你想使用React 作为一个简单的静态页面生成器,这很有用,因为剥离额外的属性可以节省一些字节。
如果你打算使用客户端上的 React ,使标记具有交互性,请不要使用此方法。相反,在服务器上使用 renderToString
,而在客户端上使用 ReactDOM.hydrate()
。
renderToNodeStream()
ReactDOMServer.renderToNodeStream(element)
将 React 元素渲染到其最初的 HTML 中。返回一个 可读的 流(stream) ,即输出 HTML 字符串。这个 流(stream) 输出的 HTML 完全等同于 ReactDOMServer.renderToString
将返回的内容。你可以使用此方法在服务器上生成 HTML ,并将标记发送到初始请求上,以获得更快的页面加载,并允许搜索引擎抓取你的页面以实现 SEO 目的。
如果在已经具有此服务器渲染标记的节点上调用 ReactDOM.hydrate()
,React 将保留它,并且只附加事件处理程序,从而使您拥有非常高性能的第一次加载体验。
注意:
仅适用于服务端。该API在浏览器中不可用。
从这个方法返回的 流(stream) 将返回一个以 utf-8 编码的字节流。如果你需要另一种编码的 流(stream) ,可以看看像 iconv-lite 这样的项目,它为转码文本提供转换流。
renderToStaticNodeStream()
ReactDOMServer.renderToStaticNodeStream(element)
类似于 renderToNodeStream
,除了这不会创建 React 在内部使用的额外DOM属性,如 data-reactroot
。 如果你想使用 React 作为一个简单的静态页面生成器,这很有用,因为剥离额外的属性可以节省一些字节。
这个 流(stream) 输出的 HTML 完全等同于 ReactDOMServer.renderToStaticMarkup
将返回的内容。
如果你打算使用客户端上的 React ,使标记具有交互性,请不要使用此方法。相反,在服务器上使用 renderToNodeStream
,而在客户端上使用 ReactDOM.hydrate()
。
注意:
仅适用于服务端。该API在浏览器中不可用。
从这个方法返回的 流(stream) 将返回一个以 utf-8 编码的字节流。如果你需要另一种编码的 流(stream) ,可以看看像 iconv-lite 这样的项目,它为转码文本提供转换流。