偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

React18正式版發(fā)布,未來(lái)發(fā)展趨勢(shì)如何?

開(kāi)發(fā) 前端
從v16開(kāi)始,React團(tuán)隊(duì)就在普及并發(fā)的概念。在v18的迭代過(guò)程中(alpha、Beta、RC),也一直在科普并發(fā)特性,所以正式版發(fā)布時(shí),已經(jīng)沒(méi)有什么新鮮特性。

大家好,我卡頌。

2022年3月29號(hào),React18正式版發(fā)布。

從v16開(kāi)始,React團(tuán)隊(duì)就在普及并發(fā)的概念。在v18的迭代過(guò)程中(alpha、Beta、RC),也一直在科普并發(fā)特性,所以正式版發(fā)布時(shí),已經(jīng)沒(méi)有什么新鮮特性。

本文主要講解v18發(fā)布日志中透露的一些未來(lái)發(fā)展趨勢(shì)。

開(kāi)發(fā)者可能并不會(huì)接觸到并發(fā)特性

React對(duì)增加API是很慎重的。從13年誕生至今,觸發(fā)更新的方式都是this.setState。

而引入并發(fā)概念后,光是與并發(fā)相關(guān)的API就有好幾個(gè),比如:

  • useTransition。
  • useDeferredValue。

甚至出現(xiàn)了為并發(fā)兜底的API(即并發(fā)情況下,不使用這些API可能會(huì)出bug),比如:

  • useSyncExternalStore。
  • useInsertionEffect。

一下多出這么多API,還不是像useState這種不使用不行的API,況且,并發(fā)這一特性對(duì)于多數(shù)前端開(kāi)發(fā)者都有些陌生。

你可以代入自己的業(yè)務(wù)想想,讓開(kāi)發(fā)者上手使用并發(fā)特性有多難。

所以,在未來(lái)用v18開(kāi)發(fā)的應(yīng)用,「開(kāi)發(fā)者可能并不會(huì)接觸到并發(fā)特性」。這些特性更可能是由各種庫(kù)封裝好的。

比如:startTransition可以讓用戶(hù)在不同視圖間切換的同時(shí),不阻塞用戶(hù)輸入。

這一API很可能會(huì)由各種Router實(shí)現(xiàn),再作為一個(gè)配置項(xiàng)開(kāi)放給開(kāi)發(fā)者。

萬(wàn)物皆可Suspense

對(duì)于React來(lái)說(shuō),有兩類(lèi)瓶頸需要解決:

  • CPU的瓶頸,如大計(jì)算量的操作導(dǎo)致頁(yè)面卡頓。
  • IO的瓶頸,如請(qǐng)求服務(wù)端數(shù)據(jù)時(shí)的等待時(shí)間。

其中CPU的瓶頸通過(guò)并發(fā)特性的優(yōu)先級(jí)中斷機(jī)制解決。

IO的瓶頸則交給Suspense解決。

所以,未來(lái)一切與IO相關(guān)的操作,都會(huì)收斂到Suspense這一解決方案內(nèi)。

從最初的React.lazy到如今仍在開(kāi)發(fā)中的Server Components,最終萬(wàn)物皆可Suspense。

這其中有些邏輯是很復(fù)雜的,比如:

  • Server Components。
  • 新的服務(wù)端渲染方案。

所以,這些操作不大可能是直接面向開(kāi)發(fā)者的。

這又回到了上一條,這些操作會(huì)交由各種庫(kù)實(shí)現(xiàn)。如果復(fù)雜度更高,則會(huì)交由基于React封裝的框架實(shí)現(xiàn),比如Next.js、Remix。

這也是為什么React團(tuán)隊(duì)核心人物Sebastian會(huì)加入Next.js。

可以說(shuō),React未來(lái)的定位是:一個(gè)前端底層操作系統(tǒng),足夠復(fù)雜,一般開(kāi)發(fā)者慎用。

而開(kāi)發(fā)者使用的是「基于該操作系統(tǒng)實(shí)現(xiàn)的各種上層應(yīng)用」。

總結(jié)

如果說(shuō)v16之前各種React Like庫(kù)還能靠體積、性能優(yōu)勢(shì)分走React部分蛋糕,那未來(lái)兩者走的完全是兩條賽道,因?yàn)閮烧叩纳鷳B(tài)不再兼容。

未來(lái)不再會(huì)有React全家桶的概念,桶里的各個(gè)部件最終會(huì)淪為更大的框架中的一個(gè)小模塊。

當(dāng)前你們業(yè)務(wù)里是直接使用React呢,還是使用各種框架(比如Next.js)?

責(zé)任編輯:姜華 來(lái)源: 魔術(shù)師卡頌
相關(guān)推薦

2013-01-08 11:08:58

Firefox 18瀏覽器

2022-11-10 12:23:24

網(wǎng)絡(luò)手機(jī)連接

2020-12-24 13:26:02

大數(shù)據(jù)大數(shù)據(jù)發(fā)展

2023-08-31 14:07:35

機(jī)架PDU數(shù)據(jù)中心

2023-05-26 15:28:06

2011-01-26 09:37:49

LibreOffice

2014-03-18 10:18:58

Python

2011-05-25 09:30:05

Fedora 15

2023-02-15 08:20:34

iOSiOS 16.蘋(píng)果

2012-07-02 10:40:24

GroovyJavaJVM

2011-12-07 10:26:11

2011-05-19 09:45:05

Opera 11.11

2011-09-14 10:08:16

MongoDB

2011-07-28 13:46:24

KDE 4.7

2011-09-14 13:28:36

PostgreSQL

2012-05-30 09:21:50

2012-04-27 10:17:50

JavaJavaFX

2010-03-18 09:54:56

phpMyAdmin

2011-12-12 09:56:19

CentOS 6.1發(fā)布

2011-03-21 13:31:20

MyEclipse
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)