一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 編程技術 - React 18 就要來了,來看看發布計劃

React 18 就要來了,來看看發布計劃

2021-06-09 23:20知乎黃玄 編程技術

React 在今天剛剛在官網發布了有關于 React 18 的計劃更新( The Plan for React 18 – React Blog )。

React 18 就要來了,來看看發布計劃

React 在今天剛剛在官網發布了有關于 React 18 的計劃更新( The Plan for React 18 – React Blog ),同時發布了 Alpha 版本的 npm 包:The Plan for React 18 – React Blog ? reactjs.org

React 18 就要來了,來看看發布計劃

官推

最近雖然忙到沒時間做視頻,不過這么大的事還是值得來聊聊(趁著公司電腦強制要求升 Big Sur 不讓不讓用的間隙……)。本文并非逐字翻譯,一如既往的會帶不少個人想法,不代表公司觀點(聽說這句話其實說了并沒什么卵用是吧 Oppo)。

React 18 正式引入了對并發模式/特性的「漸進升級」策略

 

之前我就提到過 React 18 會把重點放在解決兼容性和如何做遷移的問題上。

自從 Concurrent Mode(并發模式,以下簡稱 CM)宣布以來,Core Team 成員每天在推上 Github 上「XXX is not CM-safe」嚇死個人,使得整個社區都一直在擔心未來的 React 是不是會為了上 CM 直接 breaking change,然后不兼容 CM 的代碼必須要全部遷移過來才能用 CM("all-or-nothing" upgrade strategy)。

這次 18 的計劃發布終于橫掃了大家的擔憂 —— 并發的引入將會是 opt-in 得,不用的話就沒有 breaking changes,整體采用了漸進升級的策略(gradual adoption strategy)。

博文里基本沒講怎么漸進,只是說「升級到 18 幾乎不需要任何改動」。其實大概上有兩個地方做到了「漸進」:

 

  1. React 團隊對 "Concurrency opt-in" roots 的兼容性做了很多優化,如果不用 CM 特性的話,大概率能 just works。如博客所說「concurrent rendering will only be enabled for updates triggered by one of the new features.」—— 從此再無 CM,只有 Concurrent Features(并發特性)
  2. 對于直接想讓應用的某一部分「躺平」的可以用 legacy root。我之前在VLOG 第四期中就和大家提到過,17 對事件系統的修改的目的之一就是為了讓你的 React 應用同時可以跑在不同「版本」上。18 的實際做法是引入了新的 Root API ReactDOM.createRoot 來與舊的 ReactDOM.render API 區分開來,你可以將整個 React 樹分形成不同的 roots,用舊 API 的 legacy roots 會跑在「legacy mode 傳統模式」上(相當于跑在 17 上),用新 API 的 roots 會跑在 "Concurrency opt-in" roots 下。

React 18 的其他新特性

 

  1. 更加激進的「 自動 batching 」,React 17 只在事件回調中 batch,React 18 則會對任何來源的 setState 做盡可能多的 batching。 如果你跟我一樣是用類似 state monad 的 mental model 來思考 state 的話,你可能會以為 React 早就是這個行為了。對于 Hooks 來說你是沒有辦法拿到中間狀態的 state 而 Class 可以拿 this.state 。這也是我以前說過的 class 對比 FC 的純度問題。
  2. 新的 startTransition 與 useDeferredValue API,本質上都是允許你將 UI 的一部分標記為「較低的更新優先級」。
  3. Suspense SSR 。你可能知道也不知道的是,完全用 React 重寫的新Facebook.com 是用 Hermes 做 SSR 來優化首屏渲染得,所以 SSR 的優化就成為了 React 團隊的優先級之一啦……但是傳統 SSR 的一個問題是,全量渲染話延遲太高了。而 CM + Suspence 就可以做到用 Suspence boundary 將應用分片,然后以此為單位做流式 SSR,是不是有重新發明 BigPipe 的感覺了?
  4. StrictMode 在既 double-render 之后加入了 double-effect

可以看到,隨著 CM 的逐漸落地,其「底層能力」的一面終于開始逐漸顯著出來,越來越多的上層應用將會發布以及正在開發中(比如 Brian 提到的 Offscreen API 以及 RN Pre-render)等。

React 18 工作組

 

最后呢就是 React 成立了一個工作組(WG,Working Group)來向整個社區公開有關 18 的討論與進度。這里的重點是幫助社區的主要框架、類庫作者在 18 Alpha 階段開始遷移,這樣當 18 真正發布時社區能夠準備充分一些,React 團隊一向把開發者體驗放在非常高的位置。

 

 

 

React 18 就要來了,來看看發布計劃
React 不用我都不知道 Github 還有 Discussions 這個功能……

 

原文鏈接:https://zhuanlan.zhihu.com/p/379072979?utm_source=tuicool&utm_medium=referral

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 乳 好大h | 国产一卡2卡3卡四卡精品网站 | 思敏1一5集国语版免费观看 | 喜欢老头吃我奶躁我的动图 | 操穴勤| 欧美巨胸 | 96av视频在线观看 | 成人18网址在线观看 | 欧美男同video | 91拍拍| 变态np虐高h | 男人日女人的逼视频 | 久久黄色小视频 | 日本xxx片免费高清在线 | 深夜日韩 | 精品suv一区二区三区 | 日韩不卡一区二区 | 美女扒开胸罩露出胸大乳 | 国产精品久久久久久久久免费hd | 国内精品伊人久久大香线焦 | 我的好妈妈7中字在线观看韩国 | 水多多凹凸福利视频导航 | 国产伦精品一区二区三区免费迷 | 国产四虎 | 99国产牛牛视频在线网站 | 成人影院在线观看免费 | 欧美一区二区三区视视频 | 欧美性f| 精品国产福利片在线观看 | 欧美爽妇| 久久不卡免费视频 | 国产a一级毛片午夜剧院 | 91av俱乐部| 国内精品久久久久香蕉 | 精品一区二区三区自拍图片区 | 美女沟厕撒尿全过程高清图片 | 亚洲2卡三卡4卡5卡精品 | 67id人成观看免费 | luanlun绝对真实乱 | 紧身牛仔裤美女被啪啪久久网 | 图片专区小说专区卡通动漫 |