如何在React manual(ReactDOMServer)中看到:
如果在已有此节点的节点上调用ReactDOM.render() 服务器呈现的标记,React将保留它并仅附加事件 处理程序,允许您具有非常高性能的首次加载 经验。
这是否意味着如果我使用静态index.html,其中我只包含我的react app js文件,我不必使用服务器端呈现?
Btw哪个react-app架构更适合SEO?
谢谢你的答案!
答案 0 :(得分:1)
理论上,你可以使用静态index.html。 React将尝试在客户端呈现页面并更新您的html。使用React 15变得更容易,因为您不再需要维护data-reactid
属性。
尽管如此,我建议使用SSR(服务器端渲染),因为它可以让生活更轻松。当然,它需要付出努力才能建立,但它是有益的。您还可以使用服务器端路由,关键路径css等。
如果你想要SEO,通用应用程序是可行的方法。两个优秀的架构是:
祝你好运!答案 1 :(得分:1)
所以这意味着如果我使用静态index.html,我只是 包括我的反应应用程序js文件我不必使用服务器端 渲染?
当然。您当然可以在客户端上纯粹使用React而无需服务器呈现。但是,服务器端呈现可能有利于优雅降级。从可用性的角度来看,它也有所帮助,因为在显示任何内容之前,您的用户不必等待javascript下载和执行。
Btw哪个react-app架构更适合SEO?
现在搜索引擎拥有significantly matured抓取动态网页的能力。但是,对javascript生成内容的支持是大多数引擎中正在进行的工作。作为Google网站管理员博客explains:
有时,JavaScript可能过于复杂或难以执行,在这种情况下,我们无法完全准确地呈现页面。
有些JavaScript会从页面中删除内容而不是添加内容,这会阻止我们对内容编制索引。
因此,从SEO的角度来看,如果您选择服务器端渲染,它仍然会更好。