首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用服务器端和客户端呈现的单页ReactJS应用程序?

使用服务器端和客户端呈现的单页ReactJS应用程序?
EN

Stack Overflow用户
提问于 2018-01-31 05:30:57
回答 2查看 3.2K关注 0票数 1

据我了解,在客户端,React将重新呈现DOM中需要随时更新的部分状态更改,因此没有必要在初始页面加载之后重新加载整个页面(因此它将是一个单页应用程序)。

有了服务器端的渲染,我还能使用这个单页应用程序吗?

有一个关于这个话题的similiar question,但我相信它没有回答我的问题。如果我想实现单页应用程序,是否必须同时使用服务器端和客户端呈现?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-31 06:18:57

是的,您仍然有单页功能。服务器呈现是指在发送到客户端之前填充呈现的初始html页面。在客户端呈现中,未填充的html文件被发送到客户端,在大多数情况下,该文件将如下所示

代码语言:javascript
运行
复制
<html>
 <body>
  <div id="app"/>
 <body>
</html>

React将在加载js文件和查询服务器数据之后填充此html页面的内容。问题是,网络爬虫将无法在网页中爬行,因为爬虫只会看到上面没有内容的文件。因此,在服务器端,在将html文件发送到客户端之前,将填充它们的内容。在此之后,html文件的其余填充将照常进行。

服务器端呈现和客户端呈现之间唯一的区别是web页面的初始呈现发生在哪里。其余的渲染是在客户端本身进行的。

票数 5
EN

Stack Overflow用户

发布于 2018-01-31 06:31:08

关于单页应用程序和服务器端与客户端呈现的关系

如果你想要一个带有ReactJS的单页应用程序,你必须让你的反应代码运行在客户端。就单页应用程序而言,服务器端呈现是可选的。

React根据状态确定HTML应该是什么。单页应用程序意味着我们只加载一次页面,它将根据需要进行更新,而无需从服务器请求一个完整的页面重新加载。为了有一个单一页面的应用程序,我们必须将React加载到浏览器(客户端),这样React可以动态地更新HTML的各个部分,而不需要重新加载整个页面。

服务器是一台远程计算机,我们的本地计算机必须通过互联网与其联系才能从中获取数据。如果react运行在服务器端(服务器端),它可以首先呈现HTML,然后通过互联网发送到我们的计算机。

客户是我们自己的本地计算机。如果服务器没有将ReactJS发送到客户端以加载,并且只发送HTML,那么每次客户机想要更改状态时,它都必须与服务器联系,并向它请求新的HTML,必须重新加载整个页面。但是,如果我们在客户机上加载了我们的ReactJS代码,那么它将知道如何根据状态更新HTML的各个部分,而无需与服务器联系。

对于一个单页应用程序,您所需要的只是响应在客户端运行的代码,这样浏览器就可以呈现和更新页面的部分内容,而不必从服务器请求整个页面。服务器端呈现是可选的.

服务器端呈现的好处

在没有服务器端呈现的情况下,服务器将首先向浏览器发送所有的react代码。那么浏览器就必须加载它。那它就得运行它。然后,它将呈现页面以显示用户。

通过服务器端呈现,服务器已经加载了代码.一旦浏览器请求页面,服务器就会发送呈现的HTML,这样浏览器就不需要等待代码加载和运行,然后才向用户显示内容。用户将立即看到呈现的应用程序。

服务器端呈现也有助于搜索引擎优化,因为它允许搜索引擎将应用程序作为静态页面进行爬行和索引,而不必运行客户端javascript代码来获得表示应用程序的html。

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

https://stackoverflow.com/questions/48535071

复制
相关文章

相似问题

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