根据 react 文档,renderToString()创建了 React 内部使用的额外 DOM 属性,例如 data-reactroot 而renderToStaticMarkup不会。
而且我认为这ReactDOM.hydrate()使事件处理程序能够附加到通过字符串呈现的标记renderToString(),这要归功于额外的 DOM 属性,例如 data-reactroot。
但我自己测试过,它ReactDOM.hydrate()也适用于通过 呈现的静态标记renderToStaticMarkup(),这意味着组合ReactDOM.hydrate并renderToStaticMarkup()成功地将事件处理程序附加到字符串呈现的 DOM。
根据Dan Abramov 的问题,hydrate()不依赖于内部反应属性(data-reactroot)
相反,使用 hydrate() 明确告诉 React 对现有 HTML 进行水合。那么它不会取决于 data-reactroot 是否存在。
所以我可能猜测使用renderToStaticMarkup()而不是总是更好renderToString(),因为性能会通过以下方式得到更好的优化renderToStaticMarkup()
ReactDOM.renderToString()在 React v16 上发布 hydr() 之前,这只是一种旧方法,只能与render()and一起使用dangerouslySetInnerHTML()吗?
我认为我们总是可以使用renderToStaticMarkup()over 可以renderToString()吗?
这个问题与我的问题有关,但还没有明确的答案。
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |