首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ReactJS服务器端渲染与客户端渲染

ReactJS服务器端渲染与客户端渲染
EN

Stack Overflow用户
提问于 2014-12-04 17:25:39
回答 1查看 67.3K关注 0票数 145

我刚刚开始学习ReactJS,发现它为您提供了两种呈现页面的方式:服务器端和客户端。但是,我不明白如何一起使用它。是两种不同的方式构建应用程序,还是它们可以一起使用?

如果我们可以一起使用它,怎么做呢--我们需要在服务器端和客户端复制相同的元素吗?或者,我们可以只在服务器上构建应用程序的静态部分,在客户端构建动态部分,而不连接到已经预先呈现的服务器端吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-04 18:07:44

对于给定的网站/web应用程序,您可以在客户端、服务器端或两者都使用react。

客户端

在这里,您完全是在浏览器上运行ReactJS。这是最简单的设置,包括大多数示例(包括http://reactjs.org上的示例)。服务器呈现的初始HTML是一个占位符,加载所有脚本后,整个UI将呈现在浏览器中。

服务器端

在这里,可以将ReactJS看作是一个服务器端模板引擎(如jade、handlebars等)。由服务器呈现的HTML包含它应该包含的UI,并且您不需要等待任何脚本加载。你的页面可以被搜索引擎索引(如果没有执行任何javascript的话)。

因为UI是在服务器上呈现的,所以您的事件处理程序都不会工作,并且没有交互性(您有一个静态页面)。

两者都有

在这里,初始呈现在服务器上。因此,浏览器接收到的HTML具有它应该具有的UI。加载脚本后,将再次重新呈现虚拟DOM,以设置组件的事件处理程序。

在这里,您需要确保使用用于在服务器上呈现的相同props重新呈现完全相同的虚拟DOM (根ReactJS组件)。否则,ReactJS会抱怨服务器端和客户端的虚拟don不匹配。

由于ReactJS在重新渲染之间会使虚拟DOM有所不同,因此真实的DOM不会发生变化。只有事件处理程序绑定到真正的DOM元素。

票数 127
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27290354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档