网易首页 > 网易号 > 正文 申请入驻

为什么一个更小的信号标准,可能是 JavaScript 响应式编程的更优解?

0
分享至

JavaScript 框架不约而同地走向了响应式编程,却没有走向同一种响应式编程。信号、计算值、存储、副作用、观察者——每个主流框架都有自己的依赖图实现、自己的追踪规则、自己的调度模型、自己的生命周期语义。把一段响应式逻辑从一个框架搬到另一个框架,意味着重写;让两个响应式库协同工作,通常就是它们根本看不见彼此的依赖。

TC39 正在推进的 Signals 提案试图解决这个割裂,方案是把一个集成好的响应式图原封不动地标准化:可写信号、自动依赖追踪、基于相等性的传播、观察者语义,一整套。这也许是对的,但还有一个方向值得考虑:标准化得更少,而不是更多。具体来说,只标准化一个失效协议和一个带显式依赖的惰性缓存派生原语,自动追踪、相等性判断、调度、所有权和副作用这些事,通通留给框架自己搞定。

这个更小的“基座”长什么样?一个源头不保存状态,它只是通知“有些东西可能变了”:

const changed = Reactive.createSource();
const total = Reactive.derive([changed], () => calculateTotal());
let count = 0;
const countChanged = Reactive.createSource();
count++;
countChanged.invalidate();
const label = Reactive.derive([countChanged], () => `Count: ${count}`);
label.get()

调用 label.get(),它会按需求值,否则就直接返回缓存。仅此而已。这套东西比完整的信号方案克制得多,但恰恰是这种克制,有可能让它成为更好的标准。

为什么更小反而更稳妥?

ECMAScript 的特性一旦落地,几乎就是永久性的。一个响应式架构被写进语言之后,所有框架要么拥抱它,要么绕着它走很多年。抽象边界在这里是生死线。

有些响应式概念确实是普适的:依赖可以失效、派生值可以惰性求值、成功的求值可以缓存、失效可以传递、消费者需要知道什么时候该重新检查、订阅需要能清理。然而另一些东西,在不同框架之间差异极大:自动还是显式依赖追踪、相等性语义是 Object.is、结构比较还是版本号、图的生命期和内存管理、所有权树、副作用的调度与批量处理、事务语义、渲染集成、错误边界。这些都不是共识,而是各自的选择。

把机制做成标准,把策略留给框架顶部的设计,恰好能划出这一刀:

框架策略层────────────────────────信号、仓库、代理自动依赖追踪相等性与版本控制副作用和调度所有权与批量处理渲染集成────────────────────────标准化基座失效协议惰性缓存派生依赖替换通知机制清理机制

有了这样一个共用基座,不同框架的响应式闭包就可以互操作。一个框架的派生值可以消费另一个框架的失效源,一个工具库的响应式原语不必被锁定在特定框架的依赖图里,跨生态的组织、分包、渐进迁移都会有更低的摩擦。

完全标准化的信号提案让整个社区站到同一条船上,但也可能让船本身变得沉重而难以转向。只标准化底层“接水管”的方式,就是把水压和流速留给各家自己调。这种克制的标准或许生存力更强——它不要求所有人用同一种方式思考响应式,只要求在传递“什么东西可能变了”这件事上,大家说同一种话。

克制不是没野心,而是清楚什么该统一,什么该留给上下文去决定。对 JavaScript 响应式编程的未来来说,这可能比一套大而全的规范更值得一试。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
他曾与四大天王齐名,被富婆包养十年后变痴傻,舌头被割掉三分之二,如今看破红尘当了和尚

他曾与四大天王齐名,被富婆包养十年后变痴傻,舌头被割掉三分之二,如今看破红尘当了和尚

黎兜兜
2026-07-18 21:10:47
航运史上荒诞一幕上演:亚洲要买沙特石油 得绕行非洲

航运史上荒诞一幕上演:亚洲要买沙特石油 得绕行非洲

财联社
2026-07-22 10:34:16
台球助教不能乱摸!杭州一男子在台球厅消费1万多元,伸手摸女助教屁股,被行拘

台球助教不能乱摸!杭州一男子在台球厅消费1万多元,伸手摸女助教屁股,被行拘

火山詩话
2026-07-22 10:28:28
惨烈的校招现状:年薪600万的博士抢不到,月薪6千的计算机没人要

惨烈的校招现状:年薪600万的博士抢不到,月薪6千的计算机没人要

慧翔百科
2026-07-22 17:45:42
中美双方公布的贸易数据,差距越来越大。

中美双方公布的贸易数据,差距越来越大。

小马姨
2026-07-22 07:14:53
“牡丹花下死,做鬼也风流”!这一次,75岁的张纪中彻底成了笑话

“牡丹花下死,做鬼也风流”!这一次,75岁的张纪中彻底成了笑话

小鱼爱鱼乐
2026-07-15 12:14:00
外媒发现不对劲:中国用短短一个下午,就干掉了美国AI领先优势

外媒发现不对劲:中国用短短一个下午,就干掉了美国AI领先优势

有牙的兔纸
2026-07-21 07:43:14
唏嘘!35岁J罗又失业了:加盟4个月踢8场球 5年遭8个球队无情抛弃

唏嘘!35岁J罗又失业了:加盟4个月踢8场球 5年遭8个球队无情抛弃

风过乡
2026-07-22 08:21:03
湖人逼走詹姆斯内幕曝光,Skip:全是为了报复,真相太扎心

湖人逼走詹姆斯内幕曝光,Skip:全是为了报复,真相太扎心

天光破云来
2026-07-22 17:57:05
华为员工:我的人生很失败,赚了1000多万,买房赔了;孩子成绩全班倒数;媳妇每天不停的抱怨……

华为员工:我的人生很失败,赚了1000多万,买房赔了;孩子成绩全班倒数;媳妇每天不停的抱怨……

LULU生活家
2026-07-21 21:01:36
8月1日正式执行!所有车主紧急注意,别等被罚才知道

8月1日正式执行!所有车主紧急注意,别等被罚才知道

周哥一影视
2026-07-22 17:33:11
A股:股民系好安全带了,不管你现在几成仓,今天7.22请听我一句

A股:股民系好安全带了,不管你现在几成仓,今天7.22请听我一句

股侠指北针
2026-07-22 09:09:52
黄渤不甘2亿亏损,集结17星力战周星驰新片

黄渤不甘2亿亏损,集结17星力战周星驰新片

孤傲何妨初
2026-07-22 05:38:58
张柏芝大儿子护妈出行,背影里全是成长

张柏芝大儿子护妈出行,背影里全是成长

阿废冷眼观察所
2026-07-22 15:40:44
内蒙古乌拉特前旗警方通报16岁高中生被刺死案相关情况

内蒙古乌拉特前旗警方通报16岁高中生被刺死案相关情况

界面新闻
2026-07-22 21:03:47
300 万赎金仍撕票,刘某文潜逃两年终归案

300 万赎金仍撕票,刘某文潜逃两年终归案

慕容律师
2026-07-21 15:49:27
爆上热搜!中国年轻美女被阿根廷老外球迷搭讪,1小时从接吻到结婚!世界杯现场视频看呆

爆上热搜!中国年轻美女被阿根廷老外球迷搭讪,1小时从接吻到结婚!世界杯现场视频看呆

澳洲红领巾
2026-07-20 15:37:15
策略:明天7月23日的预判出来了,全面减仓之前,我要说两句!

策略:明天7月23日的预判出来了,全面减仓之前,我要说两句!

一担金
2026-07-22 13:23:23
王毅会见越南外长黎怀忠

王毅会见越南外长黎怀忠

新华社
2026-07-23 01:08:11
意外!北京国安戳破中超外援人数天花板:全队8外援+1非血缘归化

意外!北京国安戳破中超外援人数天花板:全队8外援+1非血缘归化

足球大腕
2026-07-23 00:41:16
2026-07-23 02:36:49
灰度测试中
灰度测试中
生活正在重构,目前还在灰度测试阶段,暂不全量发布。
343文章数 55关注度
往期回顾 全部

科技要闻

马斯克看笑了:谷歌什么都有 偏偏没最强AI

头条要闻

舷窗炸裂头部被吸出飞机乘客首次露面:浑身都是血

头条要闻

舷窗炸裂头部被吸出飞机乘客首次露面:浑身都是血

体育要闻

阿根廷的亚军:单核足球的极限?

娱乐要闻

47岁汤唯宣布二胎产子 大女儿10岁

财经要闻

宜家出售八城"蓝盒子" 30年大店逻辑生变

汽车要闻

智能舒适却依旧硬核 泰钽700仍是台与众不同的硬派SUV

态度原创

亲子
时尚
数码
本地
家居

亲子要闻

就爱喝汤的小宝宝抱着碗往嘴里倒,喝了一碗还要添汤

他不是“族长”,是我们的青春

数码要闻

三星Galaxy Z Fold8 Ultra & Z Flip8上手体验:「大/小折叠」更新升级!

本地新闻

杭州诗意路名,自带氛围感

家居要闻

2026建博会(广州) 公装联探展交流活动

无障碍浏览 进入关怀版