大家好,我是Kason。2022年3月29日,React18正式版发布。从v16开始,React团队一直在普及并发的概念。在v18(alpha,Beta,RC)的迭代过程中,并发特性已经普及,所以正式版发布的时候,并没有新的特性。本文主要讲解v18发布日志中透露的一些未来发展趋势。欢迎加入人类优质前端框架群。开发人员可能不会接触到并发功能。React对添加API非常谨慎。自2013年诞生以来,触发更新的方式就是this.setState。引入并发的概念后,有几个单独和并发相关的API,比如:useTransitionuseDeferredValue甚至是并发的API(就是并发的情况下,不使用这些API可能会出现bug),比如:useSyncExternalStoreuseInsertionEffect这么多的API,不是useState这种不用use就用不上的API。而且,并发这个特性对于大多数前端开发者来说有些陌生。你可以代入自己的业务,想想开发者上手使用并发特性的难度有多大。因此,对于未来使用v18开发的应用程序,开发者可能不会接触到并发特性。这些特性更有可能被各种库封装。例如:startTransition允许用户在不阻塞用户输入的情况下在不同的视图之间切换。这个API很可能会被各种路由器实现,然后作为配置项开放给开发者。万物皆可悬念对于React,有两类瓶颈需要解决:CPU瓶颈,比如大规模操作导致页面卡顿。IO瓶颈,比如向服务器请求数据时的等待时间。其中,CPU的瓶颈是通过并发特性。解决了优先级中断机制。IO瓶颈交给Suspense解决。因此,以后所有IO相关的操作都会汇聚到Suspense方案中。从最初的React.lazy到还在开发中的ServerComponents,Suspense终于面面俱到。其中一些逻辑非常复杂,比如:ServerComponents新的服务端渲染方案,所以这些操作不太可能直接面向开发者。这就要追溯到上一篇了,这些操作都会由各个库来实现。如果复杂度更高,会采用基于React封装的框架实现,比如Next.js、Remix。这也是为什么React团队的核心人物Sebastian会加入Next.js的原因。可以说,React未来的定位是:一个前端底层操作系统,足够复杂,一般开发者慎用。开发者基于操作系统使用各种上层应用。综上所述,如果说v16之前的各种ReactLike库还能凭借体积和性能优势分一杯羹,那么两者未来会走上两条轨道,因为两者的生态已经不兼容了.未来不再有React全家桶的概念,桶中的每一个组件最终都会缩减为更大框架中的一个小模块。您目前在业务中是直接使用React,还是使用各种框架(例如Next.js)?
