data-reactroot 与 React 中的 Hydro 函数相关吗?

Wag*_*yer 6 reactjs react-dom react-dom-server

ReactDOMServer.renderToString()我试图了解 React 16.8.6和React 16.8.6之间有什么区别ReactDOMServer.renderToStaticMarkup()

\n\n

这是我的理解:

\n\n\n\n

因此,如果我是对的,这两种方法之间的唯一区别是在应用程序的主要元素上renderToString()添加了。data-reactrootReact 在renderToStaticMarkup()文档中强调了这一点:

\n\n
\n

与 renderToString 类似,只不过这不会创建 React 内部使用的额外 DOM 属性,例如data-reactroot。如果您想使用 React 作为简单的静态页面生成器,这非常有用,因为剥离额外的属性可以节省一些字节。

\n\n

如果您计划在客户端上使用 React 来使标记具有交互性,\n 不要使用此方法。相反,请在服务器上 使用renderToString并在客户端上使用ReactDOM.Hydrate() 。

\n
\n\n

但是,我在 React 的存储库上阅读了这个问题,其中 Dan Abramov 说:

\n\n
\n

相反,使用Hydro()显式告诉 React 水合现有的\n HTML。那么它就不会依赖于 data-reactroot 是否存在。

\n
\n\n

和:

\n\n
\n

...建议的迁移路径是使用ReactDOM.Hydrate(),它 完全回避了问题,因为它不依赖于 data-reactroot 属性。

\n
\n\n

所以,我的问题是:data-reactroot 是否与 React 中的水合物函数相关,或者文档是否错误?

\n\n

了解这一点对于解决我在补水时遇到的错误非常有帮助。

\n