原生 Signal 来了,React 还跟得上吗?

摘要:2026年回头看,前端圈这一年确实挺有意思。TC39委员会正式宣布:Signals提案通过了,要进ECMAScript 2026标准。这意味着JavaScript从根儿上就有了原生的响应式状态管理,不用再靠第三方库了。

2026年回头看,前端圈这一年确实挺有意思。

TC39委员会正式宣布:Signals提案通过了,要进ECMAScript 2026标准。这意味着JavaScript从根儿上就有了原生的响应式状态管理,不用再靠第三方库了。

消息一出,最尴尬的恐怕就是React社区。


原生Signal到底是什么?

以前在React里写状态,得忍受Hooks那一套东西。useEffect的依赖数组写漏了就是个bug,代码写起来提心吊胆的:

// React写法
useEffect(() => {
  console.log(count);
}, [count]); // 漏了count就不执行了

现在ES2026里的原生Signal就不一样了。直接像写普通变量一样写响应式代码,引擎会自动帮你追踪依赖:

// 原生Signal写法
const count = new Signal.State(0);
const double = new Signal.Computed(() => count.get() * 2);

new Signal.subtle.Watcher(() => {
  console.log(`计数:${count.get()},两倍:${double.get()}`);
}).watch();

count.set(1); // 自动更新

关键是啥?没有虚拟DOM的重绘压力,没有Hooks那套心智负担。改哪就更新哪,细粒度控制。


React的选择现在看有点尴尬

现在社区吵得最凶的就是这个:

Vue、Solid、Svelte这些框架的开发者高兴坏了。它们这么多年一直坚持的信号/响应式模式,终于被官方认可了。

反观React这边,安静得很。React核心团队这些年一直坚持“UI = f(state)”这套函数式理念,不愿意引入Signal。结果现在浏览器自己都支持高效响应式追踪了,React那套又重又容易出错的Fiber调度和虚拟DOM比较,是不是真成了过时的技术债?


以后还需要框架吗?

原生Signal来了,意味着“不用框架开发”这事儿变得可行了。

以前需要Vue或者React整个运行时才能搞定的复杂数据流,现在几行原生JS就能搞定:

  • 性能更好:原生引擎实现的Signal,比任何第三方库都快

  • 体积更小:不用打包几百KB的框架代码

  • 跨框架复用:用标准Signal写的状态逻辑,React能用,Vue也能用


有人看好有人唱衰

有人说:“Signal是JS语言倒退,让代码变得不可预测。”

也有人说:“React Hooks才是反人类的设计,原生Signal救了前端开发者的发际线。”


我的看法

说实话,框架不会消失。但以后框架的角色会变——不再是给你一套完整的状态管理方案,而是在原生Signal基础上提供更好的开发体验。

对于React开发者来说,现在是个观望的好时候。React团队还没表态要不要支持原生Signal,但社区里已经有人在尝试把Signal和React结合起来了。

2026年了,你是继续坚持React的函数式信仰,还是试试原生Signal带来的新体验?

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_13514