React 18 特性分析

1. 渲染模式 Concurrent

之前的Update是同步的不可中断的,React 18启用Concurrent模式,Update是异步可中断的

  • 可中断渲染:React 可以在渲染过程中中断当前任务,处理更高优先级的更新
  • 时间切片:将渲染工作分成小块,避免长时间阻塞主线程
  • 过渡更新:区分紧急更新和非紧急更新,优先处理用户交互等紧急任务

2. 自动批量处理

setState 是同步还是异步,原理是什么?

默认合成事件就是异步的,setState 放在 promise、setTimeout、原生事件中等为同步的。所谓的异步就是批量处理。之前的 React 批量更新依赖于合成事件,React 18 之后state的批量更新不再和合成事件有直接关系,而是自动批量处理。

3. React API

  • 三个基础Hooks: useState 、 useEffect 和 useContext;
  • 当需要优化性能,减少不必要的渲染时,使用 useMemo 和 useCallback ;
  • 当需要在大中型 React 项目中处理复杂 state 时,需要掌握 useReducer ;
  • 当需要封装组件,对外提供命令式接口时,需要掌握 useRef 加 useImperativeHandle;
  • 当页面上用户操作直接相关的紧急更新(Urgent Updates,如输入文字、点击、拖拽 等),受到异步渲染拖累而产生卡顿,需要优化时,需要掌握 useDeferredValue 和 useTransition 。
相关推荐
生活的囚徒12 小时前
从一堆Excel到一套系统:项目管理+研发管理双门户的落地实践
react.js
ZhengEnCi2 天前
React 19 加 Vite 6 企业级前端项目目录结构:无路由 SPA、zustand 与 Tailwind 4 的分层架构指南
react.js
用户298698530142 天前
React 前端实现 Excel 与 CSV 互转:基于 WebAssembly 的浏览器端方案
javascript·react.js·excel
Highcharts.js3 天前
Highcharts Orbit 完全指南:把每一张图表变成交互式分析工具
react.js·前端框架·highcharts·orbit·使用指南·ai 图表·交互式分析工具
鸿蒙开发4 天前
小程序存档写到一半怎么办?双槽保存与损坏恢复实战
前端·javascript·react.js
古茗前端团队6 天前
由 key 引发的思考
前端·javascript·react.js
用户298698530149 天前
React 前端将 Excel 工作表导出为图片的技术实践
javascript·react.js·excel
終不似少年遊*10 天前
【安全业务Agent】从场景到编排
python·react.js·ai·langchain·agent·安全架构·工作流
JavaPub-rodert10 天前
从零搭建通用管理后台:ShiyuAdmin 的 Go、React 与 RBAC 实践
开发语言·react.js·golang
Highcharts.js11 天前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格