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

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

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

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

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

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

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

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

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

服务端渲染快速入门

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • Redmi Pad评测:红米充满野心的一次尝试

    从Note系列到K系列,从蓝牙耳机到笔记本电脑,红米不知不觉之间也已经形成了自己颇有竞争力的产品体系,在中端和次旗舰市场上甚至要比小米新机的表现来得更好,正所谓“大丈夫生居
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 使用Webdriver-manager解决浏览器与驱动不匹配所带来自动化无法执行的问题

    1、前言在我们使用 Selenium 进行 UI 自动化测试时,常常会因为浏览器驱动与浏览器版本不匹配,而导致自动化测试无法执行,需要手动去下载对应的驱动版本,并替换原有的驱动,可能还
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的&ldquo;今天&rdquo;,百度也很迷茫。&ldquo;新业务到 2022 年底还是 0,希望 2023 年出来一个 1。&rdquo;这是2022年底,李彦宏
  • 2纳米决战2025

    集微网报道 从三强争霸到四雄逐鹿,2nm的厮杀声已然隐约传来。无论是老牌劲旅台积电、三星,还是誓言重回先进制程领先地位的英特尔,甚至初成立不久的新
  • 联想YOGA 16s 2022笔记本将要推出,屏幕支持触控功能

    联想此前宣布,将于11月2日19:30召开联想秋季轻薄新品发布会,推出联想 YOGA 16s 2022 笔记本等新品。官方称,YOGA 16s 2022 笔记本将搭载 16 英寸屏幕,并且是一
  • 荣耀Magic4 至臻版 首创智慧隐私通话 强劲影音系统

    2022年第一季度临近尾声,在该季度内,许多品牌陆续发布自己的最新产品,让大家从全新的角度来了解当今的手机技术。手机是电子设备中,更新迭代十分迅速的一款产品,基
Top