reactjs - React - renderToString 和 renderToStaticMarkup 有什么区别

标签 reactjs

在 React 中,有 renderToString 和 renderToStaticMarkup。

据我所知,renderToString 保留了所有的react-id 属性,这使得加载速度变慢。那么什么时候使用 renderToString 实际上更好?

最佳答案

tl;dr - 如果您的服务器呈现的页面需要在客户端上进行交互,那么您需要 renderToString ,否则renderToStaticMarkup工作正常。

与编程中的大多数事物一样,每种事物都有其权衡:

<表类=“s-表”> <标题> <第> renderToString <第> renderToStaticMarkup <正文> 这将附加一些额外的 data-react*生成的标记的属性,当您运行 hydrate 时,React 使用这些属性在客户端上使页面具有交互性。 生成的标记将不包含额外的 data-*属性,它看起来像纯 HTML。您无法使这样的页面与hydrate交互。 . 由于添加了额外的属性,响应大小会更大(多大,取决于页面包含的标记量)。 响应大小会更小。 您需要reactreact-dom在您的客户端包中(用于滋润并使应用程序具有交互性。 您不需要包含 reactreact-dom在你的客户端包中(事实上,你可以在客户端没有 JS - 非交互式页面)。因此,您可以享受 React 构建 UI 的好处,而无需为此类静态站点添加 JS 用例 - 同构应用程序、服务器端渲染 Web 应用程序以实现更好的用户体验/性能。 用例 - 纯静态网站(您不关心交互性)、非交互式博客,当您想使用 React 来编写 UI 但不希望在 JS 包中包含 React 带来额外成本时。

关于reactjs - React - renderToString 和 renderToStaticMarkup 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33427226/

相关文章:

javascript - React DND,PropType 失败

reactjs - 如何在 native react 中淡出 View 的边缘?

reactjs - React Semantic-UI : Modal component with Form component? 有可能吗?

javascript - 如何在放大背景图像时平移背景图像?

javascript - Webpack - 应用程序文件夹外部的文件夹访问

javascript - 在 reactJS 中验证复选框的简单函数

reactjs - Thermite for Electron中的Node.js效果

ios - 在没有 ssl 证书的情况下在 WebView 中打开 Https URL

javascript - 状态未定义no-undef ReactJS?

javascript - 在搜索结果页面显示过滤结果