当前位置:首页 > 科技  > 软件

我们一起理解 React 服务端组件

来源: 责编: 时间:2024-04-11 09:04:56 100观看
导读有件事让我感觉自己真的老了:React 今年已经 10 岁了。自从 React 首次被引入以来,经历了几次演变。 React 团队并不羞于改变:如果他们发现了更好的问题解决方案,就会采用。React 团队推出了 React 服务端组件(React Serv

有件事让我感觉自己真的老了:React 今年已经 10 岁了。SGy28资讯网——每日最新资讯28at.com

自从 React 首次被引入以来,经历了几次演变。 React 团队并不羞于改变:如果他们发现了更好的问题解决方案,就会采用。SGy28资讯网——每日最新资讯28at.com

React 团队推出了 React 服务端组件(React  Server Components),这是最新的编写范式。 React 组件有史以来第一次可以专门在服务器上运行。SGy28资讯网——每日最新资讯28at.com

网上对这个概念有太多不理解。许多人对服务端组件是什么、如何工作、有什么好处以及是如何与服务器端渲染等内容结合使用存在很多疑问。SGy28资讯网——每日最新资讯28at.com

我一直在使用 React 服务端组件进行大量实验,也回答了我自己产生的很多问题。我必须承认,我对这些东西比我预想的要兴奋得多,因为它真的很酷!SGy28资讯网——每日最新资讯28at.com

今天,我将帮助你揭开 React 服务端组件的神秘面纱,回答你可能对 React 服务端组件存在的许多问题!SGy28资讯网——每日最新资讯28at.com

服务端渲染快速入门

由于实际场景中,React 服务端组件通常与服务端渲染(Server Side Rendering,简称 SSR)配合使用,因此预先了解服务端渲染的工作原理会很有帮助。当然,如果你已经很熟悉 SSR 了,则可以跳过本节的学习。SGy28资讯网——每日最新资讯28at.com

在我 2015 年第一次使用 React 时,那时候的大多数 React 项目都还采用“客户端渲染”策略。SGy28资讯网——每日最新资讯28at.com

在客户端渲染模式下,用户会先收到下面这样一个比较简单的网页。SGy28资讯网——每日最新资讯28at.com

<!DOCTYPE html><html>  <body>    <div id="root"></div>    <script src="/static/js/bundle.js"></script>  </body></html>

bundle.js 包含整个项目初始化和运行阶段的所有代码。包括 React、其他三方依赖以及我们自己的业务代码。SGy28资讯网——每日最新资讯28at.com

JS 文件下载并解析后,React 会立即介入,准备好渲染应用所需要的 DOM 节点,并插入到空的 <div id="root"> 里。到这里,用户就得到可以交互的页面了。SGy28资讯网——每日最新资讯28at.com

虽然这个空的 HTML 文档会很快接收,但 JS 文件的下载和解析是需要一些时间的,另外随着我们项目规模的扩大,JS 文件本身的体积可能也在不断变大。SGy28资讯网——每日最新资讯28at.com

在客户端接收到 HTML 文档,到 JS 文件处理结束的中间阶段,用户通常会面临白屏问题,这种体验就比较糟糕了。SGy28资讯网——每日最新资讯28at.com

服务端渲染就能有效的避免这种体验。服务端渲染会将我们首屏要展示的 HTML 内容在服务端预先生成,再发送到客户端。这样,客户端在接收到 HTML 时,就能渲染首屏内容,也就不会遇到白屏问题了。SGy28资讯网——每日最新资讯28at.com

当然,服务端渲染的 HTML 网页同样会包含 <script> 标签,因为发送的首屏内容还需要交由 React 托管,附加交互能力。具体来说:与客户端从头构建 DOM 不同,服务端渲染模式下,React 会利用现有的 HTML 结构进行构建,并为 DOM 节点附加交互能力,以便响应用户操作。这个过程被称为“水合(hydration)”。SGy28资讯网——每日最新资讯28at.com

我很喜欢 React 核心团队成员 Dan Abramov 对这一过程的通俗解释:SGy28资讯网——每日最新资讯28at.com

水合(Hydration)就类似使用交互和事件处理程序的“水”浇到“干”的 HTML 上。SGy28资讯网——每日最新资讯28at.com

JS 包下载后,React 将快速运行我们的整个应用程序,构建 UI 的虚拟草图,并将其“拟合”到真实的 DOM 节点、附加事件处理程序、触发 effect 等。SGy28资讯网——每日最新资讯28at.com

简而言之,SSR 就是服务器生成初始 HTML,这样用户在等待 JS 处理过程中,不会看到白屏。另外,客户端 React 会接手服务器端 React 的工作,为 DOM 加入交互能力。SGy28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-82754-0.html我们一起理解 React 服务端组件

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 所以,你是知道怎么监听LocalStorage的变化的?

下一篇: 多线程回答的滚瓜烂熟,面试官问我虚线程了解吗?我说不太了解!

标签:
  • 热门焦点
Top