成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

React團隊最近都在忙啥呢?

開發 前端
在React?漫長的發展過程中,除了很多優秀的特性(比如Hooks?、Suspense)外,還有很多最終沒有落地的想法。

大家好,我卡頌。

不知道大家有沒有一個感覺:React新特性的更新速度非常慢,時間通常是以年計。

實際上,在React漫長的發展過程中,除了很多優秀的特性(比如Hooks、Suspense)外,還有很多最終沒有落地的想法。

這些想法通常不為開發者所知,這就帶來一些「React新特性進展緩慢」的誤解。

鑒于此,React官方博客[1]今天發布了一篇文章,介紹了團隊當前工作的方向。

本文讓我們來了解React接下來工作的重心,主要包括三方面的內容:

  • 底層特性
  • 優化相關
  • 文檔相關

底層特性

進入React18后,「并發」一詞在React語境下被提及的頻率越來越高。

「并發」相關的改動對React影響也越來越大,甚至影響到日常開發(比如useEffect在嚴格模式下開發環境會執行兩次)。

作為開發者,我們希望享受「并發」帶來的體驗提升,但不愿意接受業務代碼復雜度提高。

React團隊明白這個道理,所以React的發展模式主要是:

React團隊開發底層特性 + 與其他開源團隊合作開發上層特性

下面我們介紹兩個開發中的底層特性。

React Server Components

在20年的一篇官方博客中介紹了React Server Components[2](后文簡稱為RSC)。作為底層特性,并不適合開發者直接使用。

React團隊與Vercel、Shopify合作,由這些團隊接入RSC,封裝到業務框架內部(比如Next.js),再將框架提供給開發者使用。

這樣不僅能加強React與社區的聯系(由類似Vercel這樣的專業公司充當中介),又讓React團隊可以專心于React本身的迭代(而不用分心去開發React全家桶這樣的周邊庫)。

資源請求

很多外部資源請求(比如腳本、外部樣式、字體文件、圖片等)都有預加載的需求。

React團隊正在開發「React環境下通用的外部資源請求API」。

用該API請求的數據,請求過程中可以用Suspense fallback顯示「加載中的效果」,這樣可以防止視圖「爆爆米花」(popcorning)。

「爆爆米花」這個詞真是很形象,他形容「數據加載前后占據的高度不同,從而導致頁面尺寸劇烈變化」的現象。

想象頁面中有很多「待加載的圖片」,隨著圖片加載,頁面被圖片不斷撐開的樣子,就像玉米不斷膨脹成爆米花。

優化相關

優化相關進展主要體現在三個方面:

  • 編譯時
  • 運行時
  • 分析工具

編譯時

?黃玄[3]在React Conf 2021[4]介紹了React Forget?,這是一個編譯器,用于為「可被優化的React代碼」自動加上useMemo與useCallback。

該項目一直在不斷迭代,最近剛完成重寫。同時,編譯器的playground也在同步開發中。

運行時

React一直沒有實現Vue中的Keep Alive特性。當前,在React中控制組件顯隱只有兩個途徑:

  • mount/unmout組件。缺點是:組件卸載后保存在組件中的狀態就丟失了,保存在組件對應DOM中的狀態(比如滾動高度)也丟失了。
  • 用CSS(比如display: none)控制組件對應DOM顯隱。這樣雖然能保存狀態,但卻有性能問題 —— React在運行時還是會遍歷隱藏的組件(隱藏的組件還是會render)。

Offscreen API的出現結合了兩者的優點。

遵照開篇提到的「只關注底層特性」原則,開發者最好也不要直接使用Offscreen API,而是使用「集成了Offscreen的上層框架」(比如路由庫)。

插一句題外話,其實Offscreen API并不是一個全新的API。在源碼內部,他是Suspense的組成部分之一。

接下來的迭代方向只是將其從源碼內部暴露出來。

分析工具

分析組件性能一直是剛需,為此React團隊開發了瀏覽器分析工具:

圖片

隨著React18的到來,會再新增一種時間線分析工具(timeline profiler)用于分析「并發更新時的調度情況」。

但是,他們都沒有很好解決以下需求:

  • 某一次更新比較緩慢,該怎么分析?
  • 某次交互的完整過程(比如一次點擊,一次頁面導航),該如何分析性能?

當前正在開發一個API用于分析這些具體情況下的性能問題。

文檔相關

React新文檔當前仍處于Beta版本,內容還不完全。

但React團隊對待新文檔的態度,絕對是認真的,有個很有意思的細節:

在總結useEffect應用場景時,Dan發現一些常見場景可以用一個新的原生Hook來應對。

于是,文檔寫了一半,Dan又跑去提出了useEvent提案[5]。

雖然當前文檔還沒完成,但從已公布的內容來看,不管是React萌新還是老手,都能從新文檔中有所收獲。

總結

在21年的React圣誕特輯一起走進React核心團隊[6]一文中,作者表達了一個觀點:

對于像Hooks這樣的完善特性,能夠成為Release,在其背后還有許許多多特性甚至沒到達RFC階段。

所有特性都必須等到完全準備就緒為止。在此之前,只能給其他特性讓路。

在一個如此重視交付,并且交付的速度越來越快的行業,當你的承諾無法兌現時,這讓人非常沮喪。但這并不意味著沒有進步:

你有時間思考與計劃,有時間實驗與學習。即使暫時失敗了,也會為成功的特性帶來啟發。

即使你還沒完成年初的預期工作,也要相信挫折和顛覆是常態,而不是例外,無論好壞,即使在React團隊也是如此。

不能因為你沒有新的特性產出,就意味著你沒有提供價值。

我想,這也是React團隊公布接下來工作方向的一個原因吧。

參考資料

[1]React官方博客:https://reactjs.org/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022.html。

[2]React Server Components:https://reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.html。

[3]黃玄:https://twitter.com/Huxpro。

[4]React Conf 2021:https://www.youtube.com/watch?v=lGEMwh32soc。

[5]useEvent提案:https://github.com/reactjs/rfcs/pull/220。

[6]一起走進React核心團隊:https://react.christmas/2020/24。

責任編輯:姜華 來源: 魔術師卡頌
相關推薦

2023-03-24 12:34:56

2020-02-17 21:52:19

微信支付寶健康碼

2012-08-17 13:15:42

小米2代

2020-01-07 15:40:43

React前端技術準則

2020-10-12 10:06:26

技術React代數

2015-10-21 13:17:50

2021-04-27 06:52:49

團隊研發效率

2015-09-10 09:21:14

google play

2020-05-22 18:16:57

數據泄露網絡安全互聯網

2022-07-06 15:07:47

React開發

2023-02-02 08:41:14

React團隊Vite

2021-02-27 11:03:26

算法職責ICBU

2019-02-25 09:30:00

微服務代碼小團隊

2024-02-07 12:35:00

React并發模式concurrent

2023-02-14 06:40:33

React HookReact

2022-08-22 16:23:11

React特性

2015-10-10 16:02:36

React NativAndroid

2022-05-06 07:31:01

useEventReactHook

2021-01-18 08:40:41

年薪阿里團隊

2021-04-14 11:20:04

無代碼APPNo Code
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区精品在线观看 | 黄色一级特级片 | 性做久久久久久免费观看欧美 | 国产福利视频 | 99国产欧美| 国产成人av一区二区三区 | 中文字幕在线观看精品 | 国产精品永久久久久 | 久久国产传媒 | 久久综合九色综合欧美狠狠 | 久久一二 | 久久久www成人免费无遮挡大片 | 久久宗合色 | 国产精品久久久久久久久久久久久 | 影音先锋男 | 凹凸日日摸日日碰夜夜 | 欧美激情一区二区三区 | 欧美一级久久 | 久久99网| 蜜桃av人人夜夜澡人人爽 | 亚洲视频网 | 麻豆久久久9性大片 | 男女视频免费 | 亚洲人成网站777色婷婷 | 日韩成人影院 | 91在线一区 | 久久国产视频一区 | 亚洲男女激情 | 999热精品视频 | 久久久高清 | 久久精品国产一区二区电影 | 91久久精品国产 | 视频一区二区在线观看 | 成人精品一区二区三区 | www.一区二区三区.com | 国产在线观看一区二区 | 亚洲五码久久 | 午夜小电影 | 91视频.com| 免费观看日韩精品 | 91视频免费|