大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列


2022年3月29号,React18正式版发布。

v16开始,React团队就在普及并发的概念。在v18的迭代过程中(alpha、Beta、RC),也一直在科普并发特性,所以正式版发布时,已经没有什么新鲜特性。

本文主要讲解v18发布日志中透露的一些未来发展趋势。

开发者可能并不会接触到并发特性

React对增加API是很慎重的。从13年诞生至今,触发更新的方式都是this.setState

而引入并发概念后,光是与并发相关的API就有好几个,比如:

  • useTransition

  • useDeferredValue

甚至出现了为并发兜底的API(即并发情况下,不使用这些API可能会出bug),比如:

  • useSyncExternalStore

  • useInsertionEffect

一下多出这么多API,还不是像useState这种不使用不行的API,况且,并发这一特性对于多数前端开发者都有些陌生。

你可以代入自己的业务想想,让开发者上手使用并发特性有多难。

所以,在未来用v18开发的应用,「开发者可能并不会接触到并发特性」。这些特性更可能是由各种库封装好的。

比如:startTransition可以让用户在不同视图间切换的同时,不阻塞用户输入。

这一API很可能会由各种Router实现,再作为一个配置项开放给开发者。

万物皆可Suspense

对于React来说,有两类瓶颈需要解决:

  • CPU的瓶颈,如大计算量的操作导致页面卡顿

  • IO的瓶颈,如请求服务端数据时的等待时间

其中CPU的瓶颈通过并发特性的优先级中断机制解决。

IO的瓶颈则交给Suspense解决。

所以,未来一切与IO相关的操作,都会收敛到Suspense这一解决方案内。

从最初的React.lazy到如今仍在开发中的Server Components,最终万物皆可Suspense

这其中有些逻辑是很复杂的,比如:

  • Server Components

  • 新的服务端渲染方案

所以,这些操作不大可能是直接面向开发者的。

这又回到了上一条,这些操作会交由各种库实现。如果复杂度更高,则会交由基于React封装的框架实现,比如Next.jsRemix

这也是为什么React团队核心人物Sebastian会加入Next.js

可以说,React未来的定位是:一个前端底层操作系统,足够复杂,一般开发者慎用。

而开发者使用的是「基于该操作系统实现的各种上层应用」

总结

如果说v16之前各种React Like库还能靠体积、性能优势分走React部分蛋糕,那未来两者走的完全是两条赛道,因为两者的生态不再兼容。

未来不再会有React全家桶的概念,桶里的各个部件最终会沦为更大的框架中的一个小模块。

当前你们业务里是直接使用React呢,还是使用各种框架(比如Next.js)?

················· 若川简介 ·················

你好,我是若川,毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列》20余篇,在知乎、掘金收获超百万阅读。
从2014年起,每年都会写一篇年度总结,已经坚持写了8年,点击查看年度总结。
同时,最近组织了源码共读活动,帮助3000+前端人学会看源码。公众号愿景:帮助5年内前端人走向前列。

扫码加我微信 ruochuan02、拉你进源码共读

今日话题

略。分享、收藏、点赞、在看我的文章就是对我最大的支持~

【热点】React18正式版发布,未来发展趋势是?相关推荐

  1. Linux Kernel 5.1 正式版发布;Ubuntu 19.10 命名 Eoan Ermine

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.Linux Kernel 5.1 正式版发布:常规更新,非长期支持版本 大神 ...

  2. .NET 5.0 RC1 发布,离正式版发布仅剩两个版本,与 netty 相比更具竞争力

    原文:http://dwz.win/Qf8 作者:Richard 翻译:精致码农-王亮 说明: 1. 本译文并不是完全逐句翻译的,存在部分语句我实在不知道如何翻译或组织就根据个人理解用自己的话表述了. ...

  3. vue 3.0 正式版_Vuejs 3 Release:One Piece. Vuejs 3.0 正式版发布!代号:海贼王

    Vuejs 3.0 在北京时间2020年9月19日凌晨,终于发布了 3.0 版本,代号:One Piece.此次vue3.0 为用户提供了全新的 composition-api 以及更小的包大小,和更 ...

  4. 苹果雪豹操作系统正式版_Android 11 正式版发布!

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 头图 | CSDN 下载自谷歌官网 Android 11今天正式发布了!新版本主要加强了聊天气泡.安全隐私.电源菜单,以及对瀑布屏.折叠 ...

  5. Android 11 正式版发布!

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 头图 | CSDN 下载自谷歌官网 Android 11今天正式发布了!新版本主要加强了聊天气泡.安全隐私.电源菜单,以及对瀑布屏.折叠 ...

  6. 苹果秋季发布会于9月16日召开;华为搜索业务将在国内亮相;Android 11正式版发布 | 极客头条

    整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内 ...

  7. 路过秋天版博客 V2.0 正式版发布 增加后台管理系统[支持多语言、多用户、多数据库、目录级URL]...

    路过秋天版博客发布历史回顾: 1:2010年11月08日---支持多语言.多用户.多数据库.目录级URL之路过秋天版博客发布[绝对有杀伤力的博客] 2:2010年11月10日---基础却容易被忽略的那 ...

  8. 极客日报第6期:天猫京东双十一总交易额7697亿元,你贡献了多少?.NET 5.0 正式版发布!

    文章目录 互联网快讯 程序员专区 Github每日精选 CSDN社区优质博文精选 互联网快讯 1.天猫京东双十一总交易额7697亿元,你贡献了多少? 零点,2020天猫双11全球狂欢季的最终交易额定格 ...

  9. 【译】Flutter 2.0 正式版发布,全平台 Stable

    针对 Web,Mobile 和 Desktop 的下一代 Flutter . 今天 Flutter 2 正式版发布了,作为 Flutter 的重大升级,使用 Flutter 2 开发者可以用相同的代码 ...

最新文章

  1. Myeclipse 2014配置SVN详细图解
  2. HTTP协议容易犯的误区
  3. NAS新突破,仅需半个 GPU day 即可训练出高性能架构!阿里提出 Zen-NAS
  4. Appfuse下载及安装步骤
  5. 什么是搜索引擎分词技巧
  6. C++ 链表入门习题
  7. C#【必备技能篇】Win10 查看 DLL 中的函数
  8. 【信息系统项目管理师】项目管理十大知识领域速记
  9. Paypal支付跳转失败的原因及解决办法
  10. Android - NETD解读
  11. python 画图工具——matplotlib命令式函数
  12. SQLServer之修改PRIMARY KEY
  13. php怎么做地图源代码,php直播源码百度地图坐标拾取系统自定义页面
  14. 巨详细,大电流线性电源(LDO)原理,看完你就明白了
  15. 草履虫纳米机器人_草履虫大小的微型机器人:由激光驱动,未来可用于显微外科手术!...
  16. 磁编码器MT6835_SPI读取位置信息
  17. 【调剂】上海应用技术大学2020年硕士研究生招生考试调剂信息
  18. 一级计算机照片咋拍,如何拍出锐利照片?你需要掌握的10条技巧
  19. python读取近红外光谱数据
  20. 2022年陕西省建筑三类人员(企业主要负责人A证)练习题及答案

热门文章

  1. 华为荣耀5cvs华为v9play_华为荣耀v9play和荣耀9哪个好_华为荣耀v9play和荣耀9对比评测_飞翔教程...
  2. 大数据平台助力核与辐射安全监管
  3. D. Anton and Chess 模拟题 + 读题
  4. 快速删除数据库中所有表中的数据
  5. 用委托实现窗体间传值
  6. python 清屏_Python学前准备如果你知道要去哪,那么全世界都给你让路
  7. go语言api源码中文版_Go语言学习——sync.map源码剖析
  8. python pyqt eric_科学网—PyQt及Eric的安装 - 张鲁新的博文
  9. 最详细的docker安装rocketMQ教程来了
  10. matlab 图像的色彩强度,图像色彩增强的问题,,,小白给跪,