新闻速读:Meta开源团队发布React 20候选版
10月7日,Meta开源团队在React Conf Europe上公布React 20 Release Candidate(RC),引入被期待已久的Signals响应式体系与Server Components的正式版API。RC还包括新的react-dom/server.edge
运行时、编译期Hook分析、内置性能剖析工具。Vercel、Netlify、Cloudflare Page正式宣布支持React 20 RC,提供部署模板。
Signals架构:超越useState的响应式范式
React 20引入createSignal
、createComputed
等API,允许开发者以细粒度响应式方式管理状态。与传统Hooks相比,Signals具备以下特性:
- 细粒度更新:组件只订阅所需的Signal片段,避免整组件重渲染;
- 自动失效:
createComputed
可自动追踪依赖,计算结果在Signal更新时失效; - 与Hooks共存:现有Hooks仍可使用,React在编译阶段分析依赖,决定是否转换为Signal。
Server Components正式版:边缘运行与渐进增强
React 20强化Server Components:
- 边缘友好运行时:
react-dom/server.edge
允许在V8 Isolate、Deno、Bun等环境运行,支持流式传输与延迟插桩; - 资源调度:引入
useServerContext
共享服务器数据,避免重复加载; - 编译期分析:新的
react-compiler
在构建时检查Server/Client组件边界,提示不兼容代码。
架构影响:全栈前端的协作格局重塑
Signals+Server Components让React应用的状态管理与渲染策略更加多元。开发团队可以:
- 在客户端使用Signals处理细粒度交互,在服务器通过Server Components加载数据,减少客户端JS体积;
- 配合边缘运行时,实现“近用户渲染”;
- 借助内置剖析工具和编译器,提升性能可视化能力。
落地建议:迈向React 20的准备工作
- 升级构建链路:Vite、Next.js、Remix已发布React 20兼容版本,需更新依赖并开启
reactCompiler
选项; - 渐进引入Signals:从局部状态热点开始,将
useState
替换为createSignal
,观察性能改善; - 梳理Server Components边界:确保Server组件不依赖浏览器API,使用
use client
标记必要部分; - 性能监控:利用React Profiler、Vercel Analytics观察渲染路径,为正式版发布前优化。
结语:React迈入“响应式+边缘原生”时代
React 20 RC展示了前端框架向细粒度响应式和边缘运行靠拢的趋势。抓住Signals与Server Components的协同,将成为下一代React工程的关键竞争力。