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

更新日期: 2026-03-27 阅读: 32 标签: ECMAScript

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://fly63.com/article/detial/13514

相关推荐

Callback Hell和ECMAScript6 Promise

回调地域 既一个异步请求需要另一个异步请求结果;由于 Javascript 是单线程的,所以这里执行顺序是 ajax1 -> ajax2 -> ajax3 -> ajax4;但是又由于这四个是异步操作

ECMAScript 6 模块封装代码

JavaScript 用“共享一切”的方法加载代码,这是该语言中最容易出错且最容易让人感到困惑的地方。其他语言使用诸如包这样的概念来定义代码作用域,但在 ECMAScript 6 以前,在应用程序的每一个 JavaScript 中定义的一切都共享一个全局作用域

ECMAScript 2020 的新功能速成

ECMAScript 2020 是我们最喜欢的编程语言的第 11 版,其中包含一些新功能。有些是小特性,但有些将会有可能永远改变我们编写 JavaScript 的方式。

ECMAScript是什么?

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设计语言,一种可以在宿主环境中执行计算并能操作可计算对象的基于对象的程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript

ECMAScript中的函数

函数声明 与 函数表达式 是有区别的。执行代码时,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问);至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行。

ECMAScript 2020新特性_了解ES11新增9个新特性

ECMAScript 2020 是 ECMAScript 语言规范的第11版。自1997年出版第一版以来,ECMAScript 已发展成为世界上使用最广泛的通用编程语言之一。

ECMAScript 2025正式发布:8 个提升开发效率的新功能

2025 年 6 月,ECMA 国际组织正式发布了 ECMAScript 2025(ES16)标准。作为 JavaScript 语言的最新版本,ES2025 带来了八项实用新特性,将显著改善开发体验。下面我们详细看看这些新功能:

ECMAScript 2024(ES15)将带来这些新特性,超实用!

ECMAScript 语言规范每年都会进行一次更新,而备受期待的 ECMAScript 2024 将于 2024 年 6 月正式亮相。目前,ECMAScript 2024 的候选版本已经发布,为我们带来了一系列实用的新功能。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!