日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

我們一起理解 React 服務端組件

來源: 責編: 時間:2024-04-11 09:04:56 167觀看
導讀有件事讓我感覺自己真的老了:React 今年已經 10 歲了。自從 React 首次被引入以來,經歷了幾次演變。 React 團隊并不羞于改變:如果他們發現了更好的問題解決方案,就會采用。React 團隊推出了 React 服務端組件(React Serv

有件事讓我感覺自己真的老了:React 今年已經 10 歲了。HdD28資訊網——每日最新資訊28at.com

自從 React 首次被引入以來,經歷了幾次演變。 React 團隊并不羞于改變:如果他們發現了更好的問題解決方案,就會采用。HdD28資訊網——每日最新資訊28at.com

React 團隊推出了 React 服務端組件(React  Server Components),這是最新的編寫范式。 React 組件有史以來第一次可以專門在服務器上運行。HdD28資訊網——每日最新資訊28at.com

網上對這個概念有太多不理解。許多人對服務端組件是什么、如何工作、有什么好處以及是如何與服務器端渲染等內容結合使用存在很多疑問。HdD28資訊網——每日最新資訊28at.com

我一直在使用 React 服務端組件進行大量實驗,也回答了我自己產生的很多問題。我必須承認,我對這些東西比我預想的要興奮得多,因為它真的很酷!HdD28資訊網——每日最新資訊28at.com

今天,我將幫助你揭開 React 服務端組件的神秘面紗,回答你可能對 React 服務端組件存在的許多問題!HdD28資訊網——每日最新資訊28at.com

服務端渲染快速入門

由于實際場景中,React 服務端組件通常與服務端渲染(Server Side Rendering,簡稱 SSR)配合使用,因此預先了解服務端渲染的工作原理會很有幫助。當然,如果你已經很熟悉 SSR 了,則可以跳過本節的學習。HdD28資訊網——每日最新資訊28at.com

在我 2015 年第一次使用 React 時,那時候的大多數 React 項目都還采用“客戶端渲染”策略。HdD28資訊網——每日最新資訊28at.com

在客戶端渲染模式下,用戶會先收到下面這樣一個比較簡單的網頁。HdD28資訊網——每日最新資訊28at.com

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

bundle.js 包含整個項目初始化和運行階段的所有代碼。包括 React、其他三方依賴以及我們自己的業務代碼。HdD28資訊網——每日最新資訊28at.com

JS 文件下載并解析后,React 會立即介入,準備好渲染應用所需要的 DOM 節點,并插入到空的 <div id="root"> 里。到這里,用戶就得到可以交互的頁面了。HdD28資訊網——每日最新資訊28at.com

雖然這個空的 HTML 文檔會很快接收,但 JS 文件的下載和解析是需要一些時間的,另外隨著我們項目規模的擴大,JS 文件本身的體積可能也在不斷變大。HdD28資訊網——每日最新資訊28at.com

在客戶端接收到 HTML 文檔,到 JS 文件處理結束的中間階段,用戶通常會面臨白屏問題,這種體驗就比較糟糕了。HdD28資訊網——每日最新資訊28at.com

服務端渲染就能有效的避免這種體驗。服務端渲染會將我們首屏要展示的 HTML 內容在服務端預先生成,再發送到客戶端。這樣,客戶端在接收到 HTML 時,就能渲染首屏內容,也就不會遇到白屏問題了。HdD28資訊網——每日最新資訊28at.com

當然,服務端渲染的 HTML 網頁同樣會包含 <script> 標簽,因為發送的首屏內容還需要交由 React 托管,附加交互能力。具體來說:與客戶端從頭構建 DOM 不同,服務端渲染模式下,React 會利用現有的 HTML 結構進行構建,并為 DOM 節點附加交互能力,以便響應用戶操作。這個過程被稱為“水合(hydration)”。HdD28資訊網——每日最新資訊28at.com

我很喜歡 React 核心團隊成員 Dan Abramov 對這一過程的通俗解釋:HdD28資訊網——每日最新資訊28at.com

水合(Hydration)就類似使用交互和事件處理程序的“水”澆到“干”的 HTML 上。HdD28資訊網——每日最新資訊28at.com

JS 包下載后,React 將快速運行我們的整個應用程序,構建 UI 的虛擬草圖,并將其“擬合”到真實的 DOM 節點、附加事件處理程序、觸發 effect 等。HdD28資訊網——每日最新資訊28at.com

簡而言之,SSR 就是服務器生成初始 HTML,這樣用戶在等待 JS 處理過程中,不會看到白屏。另外,客戶端 React 會接手服務器端 React 的工作,為 DOM 加入交互能力。HdD28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-82754-0.html我們一起理解 React 服務端組件

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 所以,你是知道怎么監聽LocalStorage的變化的?

下一篇: 多線程回答的滾瓜爛熟,面試官問我虛線程了解嗎?我說不太了解!

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 江陵县| 辽阳县| 枝江市| 宁安市| 平和县| 华阴市| 天镇县| 正镶白旗| 新营市| 诏安县| 乡宁县| 汉源县| 乌恰县| 白朗县| 舟曲县| 襄垣县| 增城市| 汨罗市| 丰都县| 塔城市| 仲巴县| 呼图壁县| 敖汉旗| 丰原市| 泸西县| 梨树县| 稷山县| 乌海市| 大姚县| 盘山县| 曲靖市| 海门市| 安龙县| 蒙阴县| 利津县| 盐城市| 台南市| 宾阳县| 项城市| 姚安县| 内黄县|