忻州内厩机械设备有限公司

熱門系統(tǒng)產品
電商交易類產品
渠道/經銷商產品
AI人工智能產品
業(yè)務協(xié)同系統(tǒng)產品
其他產品與服務
沒有你合適的?
我要定制 >

React 的未來:服務端組件

發(fā)布時間: 2021-03-24 文章分類: 技術干貨
閱讀量: 0

電商商城系統(tǒng)

服務端組件是什么?

截至目前,我們對 React 組件的了解只是客戶端組件,僅此而已。

然而,React 團隊正在試驗一個新的想法,那就是將 React 組件區(qū)分為兩個類型:客戶端組件和服務端組件。該提案的開頭就是使用不同的文件擴展名(.client.js 和.server.js)來區(qū)分它們。然而,客戶端組件和服務端組件到底是怎么定義的?

首先,客戶端組件指的就是現在我們日常開發(fā)中使用的 React 組件。

其次是服務端組件,從某種意義上來說它是一個新型組件,該類型的組件會在服務端完成渲染后,再發(fā)送到客戶端。

服務端組件哪些優(yōu)勢?

乍一看,服務端組件類似于服務端渲染(SSR),實際上,服務端組件的很多優(yōu)勢和服務端渲染也是很類似:

提供了直接訪問服務端資源(如:數據庫、文件系統(tǒng)、內部的微服務等)的可能,因此開發(fā)起來會更容易。

避免了不必要的客戶端和服務端之間的交互,因此性能更快。允許一些類庫可以直接運行在服務端,因此減小了客戶端包文件的大小,除此之外,服務端組件還給開發(fā)過程帶來了更好的體驗,特別是在代碼切割上:

自動代碼切割(例如:為了讓客戶端實現按需加載,需要將代碼切割成一個個的小包),目前為了實現這個功能,React 開發(fā)人員需要手動實現如下代碼:

React 的未來:服務端組件

未來,服務端組件會自動處理,這就意味著,我們無需特殊代碼處理就可以實現此功能:

React 的未來:服務端組件

然而,要想真正體會到服務端組件的強大優(yōu)勢,必須將其與服務端渲染(SSR)進行更細致的比對。

那么,服務端組件和 SSR 有哪些不同呢?

在使用 SSR 時,你需要先在服務端完成 HTML 的渲染,然后再將該 HTML 發(fā)送到客戶端。然后此過程只會發(fā)生在頁面的初次訪問時(也就是初始化加載的時候)。至此之后,你的 React 應用在數據更新展示等行為表現上和常規(guī)的 React 應用沒有任何區(qū)別。在展示更新之后的數據時,都是要么從客戶端發(fā)送一個網絡請求,要么頁面整體刷新,但不管采用哪種方式,都會導致組件的二次渲染和狀態(tài)丟失,從而影響性能和客戶體驗。

相對而言,在使用服務端組件時,你的組件在服務端完成渲染,然后通過自定義的協(xié)議發(fā)送到客戶端(如下圖)。React 拿到數據時,將新的 UI 整體的合并到客戶端 UI 樹里面,此過程不會對客戶端其他狀態(tài)產生影響。此過程可以無限次數的執(zhí)行。React 通過整體 UI 模塊更新的方式,達到保持客戶端狀態(tài)的目的,極大的增強了用戶體驗。

React 的未來:服務端組件

要了解更多的細節(jié)可以參考 Dan Abramov 在推特上的這條回復,或者閱讀來著 React 數據團隊的 Lauren Tan 在 Twwiter 的帖子,或者訪問 Mehul Mohan 發(fā)布在 freeCodeCamp 上的這篇文章

注意事項

由于服務端組件是靜態(tài)的、服務端渲染的,因此相對于客戶端組件,不可避免的會有些使用限制。

首先,服務端組件不能有任何交互行為(例如:不能使用 useState(),useEffect())。但是你可以通過在服務端組件內部引入客戶端組件(客戶端組件是允許存在交互行為的)的方式來解決這個問題。例如下面的示例代碼就做到了兩者兼顧:

React 的未來:服務端組件

其次,由于服務端組件是在服務端完成渲染后通過網絡傳輸給到客戶端, 因此服務端組件傳輸 props 到客戶端組件的時候,props 必須被序列化(意味著:可傳輸的數據只能是字符串、JSON 對象或者 JSX,不能傳輸 JavaScript 函數)。

接下來是什么?

雖然這一切都很令人興奮,但該功能仍處于實驗階段。它的 API 和具體實現未來都有變化的可能,因此該特性目前還不能被運用到生產環(huán)境。

最后,服務端組件將會是一個可選的特性,現有的 React 代碼依然可以正常工作,因此開發(fā)人員不需要急著采用新功能。

 

文章來源:medium,作者:Donovan So;

【數商云www.zhimaihui.cn】致力于提供企業(yè)級的電商平臺服務,長期為大中型企業(yè)打造數據化、商業(yè)化、智能化的電商網站建設解決方案,同時我們還提供B2B交易系統(tǒng)、B2B2C多用戶商城系統(tǒng)、B2C電子商務系統(tǒng)、跨境進口電商平臺、供應鏈管理系統(tǒng)、SRM供應商管理系統(tǒng)、SCM系統(tǒng)、渠道管理系統(tǒng)等一系列系統(tǒng)定制開發(fā)服務,通過大數據、云計算等新技術協(xié)助企業(yè)打造供應端—渠道端—營銷端—數據端等全鏈數字化運營體系,提升企業(yè)運營效益與智慧數字化商業(yè)轉型。

點贊 | 0

數商云是一家全鏈數字化運營服務商,專注于提供SCM/企業(yè)采購/SRM供應商/DMS經銷商/渠道商等管理系統(tǒng),B2B/S2B/S2C/B2B2C/B2C等電商系統(tǒng),從“供應鏈——生產運營——銷售市場”端到端的全鏈數字化產品和方案,致力于通過數字化和新技術為企業(yè)創(chuàng)造商業(yè)數字化價值。

添加企業(yè)微信獲取更多資料
添加企業(yè)微信獲取更多資料
相關文章

評論

剩余-200
發(fā)表
填寫以下信息, 免費獲取方案報價
姓名
手機號碼
企業(yè)名稱
  • 建筑建材
  • 化工
  • 鋼鐵
  • 機械設備
  • 原材料
  • 工業(yè)
  • 環(huán)保
  • 生鮮
  • 醫(yī)療
  • 快消品
  • 農林牧漁
  • 汽車汽配
  • 橡膠
  • 工程
  • 加工
  • 儀器儀表
  • 紡織
  • 服裝
  • 電子元器件
  • 物流
  • 化塑
  • 食品
  • 房地產
  • 交通運輸
  • 能源
  • 印刷
  • 教育
  • 跨境電商
  • 旅游
  • 皮革
  • 3C數碼
  • 金屬制品
  • 批發(fā)
  • 研究和發(fā)展
  • 其他行業(yè)
需求描述
填寫以下信息馬上為您安排系統(tǒng)演示
姓名
手機號碼
你的職位
企業(yè)名稱

恭喜您的需求提交成功

尊敬的用戶,您好!

您的需求我們已經收到,我們會為您安排專屬電商商務顧問在24小時內(工作日時間)內與您取得聯(lián)系,請您在此期間保持電話暢通,并且注意接聽來自廣州區(qū)域的來電。
感謝您的支持!

您好,我是您的專屬產品顧問
掃碼添加我的微信,免費體驗系統(tǒng)
(工作日09:00 - 18:00)
專屬顧問圖片
電話咨詢 (工作日09:00 - 18:00)
客服熱線: 4008 868 127
售前熱線: 189 2432 2993
掃碼即可快速撥打熱線