同时使用服务器端和客户端呈现的单页 ReactJS 应用程序?
Single-page ReactJS app using both server-side and client-side rendering?
据我所知,在客户端,React 会在状态更改时重新渲染需要更新的 DOM 部分,因此无需在初始页面后重新加载整个页面加载(因此它将是一个单页应用程序)。
有了服务器端渲染,我还需要这个单页应用程序功能吗?
有一个关于这个主题的similiar question,但我认为它没有回答我的问题。如果我要实现单页应用,是否必须同时使用服务器端和客户端渲染?
是的,您仍将拥有单页功能。服务器呈现是指呈现的初始 html 页面在发送到客户端之前被填充。在客户端渲染中,未填充的 html 文件被发送到客户端,在大多数情况下看起来像这样
<html>
<body>
<div id="app"/>
<body>
</html>
React 将在加载 js 文件并向服务器查询数据后填充此 html 页面的内容。这样做的问题是网络爬虫将无法爬过网页,因为爬虫唯一会看到的是没有内容的上述文件。所以在服务器端呈现 html 文件的内容在发送到客户端之前被填充。此后,html 文件的其余填充将照常进行。
服务器端呈现和客户端呈现之间的唯一区别是网页的初始呈现发生在何处。其余的渲染发生在客户端本身
关于单页应用程序和服务器端与客户端呈现
如果您希望使用 ReactJS 开发单页应用程序,您必须在客户端安装您的 React 代码 运行ning。就单页应用而言,服务器端渲染是可选的。
React 根据状态确定 HTML 应该是什么。单页应用程序意味着我们加载一次页面,它会根据需要更新,而无需从服务器请求重新加载整个页面。为了拥有单页应用程序,我们必须将 React 加载到浏览器(客户端),以便 React 可以动态更新 HTML 的部分,而无需重新加载整个页面。
服务器是一台远程计算机,我们的本地计算机必须通过 Internet 联系它以从中获取数据。如果 React 在服务器(服务器端)上 运行ning,它可以先渲染 HTML,然后通过互联网将其发送到我们的计算机。
客户端是我们自己的本地电脑。如果服务端不发送ReactJS给客户端加载,只发送HTML,那么客户端每次要改变状态,都需要联系服务端,向其请求新的[=32] =],必须重新加载整页。但是,如果我们将 ReactJS 代码加载到客户端,那么它将知道如何根据状态更新 HTML 的部分,而无需联系服务器。
对于单页应用,您只需要在客户端响应代码 运行ning,这样浏览器就可以呈现和更新部分页面,而无需从服务器。服务器端渲染是可选的。
服务器端渲染的好处
如果没有服务器端渲染,服务器会首先将所有的反应代码发送到浏览器。然后浏览器必须加载它。那就得运行吧。然后它将呈现页面以显示给用户。
使用服务器端呈现,服务器已经加载了代码。只要浏览器请求页面,服务器就会发送呈现的 HTML,因此浏览器不需要等待代码加载和 运行 就可以向用户显示内容。用户将立即看到呈现的应用程序。
服务器端呈现也有助于搜索引擎优化,因为它允许搜索引擎将您的应用作为静态页面进行抓取和索引,而无需 运行 客户端 javascript 代码来获取代表您的应用程序的 html。
据我所知,在客户端,React 会在状态更改时重新渲染需要更新的 DOM 部分,因此无需在初始页面后重新加载整个页面加载(因此它将是一个单页应用程序)。
有了服务器端渲染,我还需要这个单页应用程序功能吗?
有一个关于这个主题的similiar question,但我认为它没有回答我的问题。如果我要实现单页应用,是否必须同时使用服务器端和客户端渲染?
是的,您仍将拥有单页功能。服务器呈现是指呈现的初始 html 页面在发送到客户端之前被填充。在客户端渲染中,未填充的 html 文件被发送到客户端,在大多数情况下看起来像这样
<html>
<body>
<div id="app"/>
<body>
</html>
React 将在加载 js 文件并向服务器查询数据后填充此 html 页面的内容。这样做的问题是网络爬虫将无法爬过网页,因为爬虫唯一会看到的是没有内容的上述文件。所以在服务器端呈现 html 文件的内容在发送到客户端之前被填充。此后,html 文件的其余填充将照常进行。
服务器端呈现和客户端呈现之间的唯一区别是网页的初始呈现发生在何处。其余的渲染发生在客户端本身
关于单页应用程序和服务器端与客户端呈现
如果您希望使用 ReactJS 开发单页应用程序,您必须在客户端安装您的 React 代码 运行ning。就单页应用而言,服务器端渲染是可选的。
React 根据状态确定 HTML 应该是什么。单页应用程序意味着我们加载一次页面,它会根据需要更新,而无需从服务器请求重新加载整个页面。为了拥有单页应用程序,我们必须将 React 加载到浏览器(客户端),以便 React 可以动态更新 HTML 的部分,而无需重新加载整个页面。
服务器是一台远程计算机,我们的本地计算机必须通过 Internet 联系它以从中获取数据。如果 React 在服务器(服务器端)上 运行ning,它可以先渲染 HTML,然后通过互联网将其发送到我们的计算机。
客户端是我们自己的本地电脑。如果服务端不发送ReactJS给客户端加载,只发送HTML,那么客户端每次要改变状态,都需要联系服务端,向其请求新的[=32] =],必须重新加载整页。但是,如果我们将 ReactJS 代码加载到客户端,那么它将知道如何根据状态更新 HTML 的部分,而无需联系服务器。
对于单页应用,您只需要在客户端响应代码 运行ning,这样浏览器就可以呈现和更新部分页面,而无需从服务器。服务器端渲染是可选的。
服务器端渲染的好处
如果没有服务器端渲染,服务器会首先将所有的反应代码发送到浏览器。然后浏览器必须加载它。那就得运行吧。然后它将呈现页面以显示给用户。
使用服务器端呈现,服务器已经加载了代码。只要浏览器请求页面,服务器就会发送呈现的 HTML,因此浏览器不需要等待代码加载和 运行 就可以向用户显示内容。用户将立即看到呈现的应用程序。
服务器端呈现也有助于搜索引擎优化,因为它允许搜索引擎将您的应用作为静态页面进行抓取和索引,而无需 运行 客户端 javascript 代码来获取代表您的应用程序的 html。