当前位置:首页 > 科技  > 软件

万众期待!JavaScript 宣布 Signals 即将到来!颠覆性的 API !

来源: 责编: 时间:2024-05-11 09:20:35 266观看
导读状态管理状态管理这个词我相信大家都不陌生,无论是 Vue、React 都有状态管理 这种概念,就比如:Vue: Ref、Reactive、Computed、Vuex、PiniaReact: useState、Redux、Mobx这些状态管理的 API 或者 工具库,都有几个共同的特点

状态管理

状态管理这个词我相信大家都不陌生,无论是 Vue、React 都有状态管理 这种概念,就比如:Tq428资讯网——每日最新资讯28at.com

  • Vue: Ref、Reactive、Computed、Vuex、Pinia
  • React: useState、Redux、Mobx

这些状态管理的 API 或者 工具库,都有几个共同的特点:Tq428资讯网——每日最新资讯28at.com

  • 自动进行状态追踪和更新: 也就是当一个值修改时,所有依赖它的地方都重新计算。不需要手动去重新计算。
  • 性能优势: 当一个值修改时,依赖项的更新都采用惰性更新的方式,减少不必要的性能损耗。

但是上述的这些 API 或 工具库 都是跟一些前端框架耦合的,而不是 JavaScript 原生支持的。Tq428资讯网——每日最新资讯28at.com

Signals 它来啦!!!

千呼万唤始出来!!!Signals 它来啦!!!最近,官方正式公开发布了 Signals 的TC39标准化草案,目前处于Stage0阶段,并且也推出了符合规范的polyfill。Tq428资讯网——每日最新资讯28at.com

Signals 就是 JavaScript 原生支持的 状态管理 API。Tq428资讯网——每日最新资讯28at.com

图片图片Tq428资讯网——每日最新资讯28at.com

优势

  • 自动进行状态追踪和更新: 也就是当一个值修改时,所有依赖它的地方都重新计算。不需要手动去重新计算。
  • 性能优势: 当一个值修改时,依赖项的更新都采用惰性更新的方式,减少不必要的性能损耗。
  • 跨框架: 它不跟任何一个前端框架耦合,可以用在任何一个框架之中,兼容性很强。

基本用法

首先是进行 Signals 状态管理的声明。Tq428资讯网——每日最新资讯28at.com

图片图片Tq428资讯网——每日最新资讯28at.com

接着是对这个值的读取(get)和修改(set)。Tq428资讯网——每日最新资讯28at.com

图片图片Tq428资讯网——每日最新资讯28at.com

你也可以声明另一个 Signals 变量 B,且这个变量 B 依赖另一个变量 A,类似于 Vue 中的 computed。Tq428资讯网——每日最新资讯28at.com

这需要用到 Signals.computed。Tq428资讯网——每日最新资讯28at.com

图片图片Tq428资讯网——每日最新资讯28at.com

而一个计算变量同样可以依赖另一个依赖变量。Tq428资讯网——每日最新资讯28at.com

图片图片Tq428资讯网——每日最新资讯28at.com

当状态管理变化的时候,我们会想去做一些操作,那我们应该如何监听变化呢?就类似于 Vue 的 watch。Tq428资讯网——每日最新资讯28at.com

其实 Siganls 是会提供给我们一个 effect 的全局方法,让我们可以监听依赖项的变化,并传入一个回调函数,在回调中去做我们想做的事情。Tq428资讯网——每日最新资讯28at.com

图片图片Tq428资讯网——每日最新资讯28at.com

跟 Pinia、Vuex 比较?

如果指望 Signals 取代 Pinia、Vuex 那是不现实的,因为大部分项目都是使用 Vue 框架,而 Pinia、Vuex 是针对 Vue 推出的状态管理工具库,在 Vue 中用起来肯定比 Signals 好用多了~况且 Signals 现在还没正式上线呢!Tq428资讯网——每日最新资讯28at.com

Stage 0 阶段

  • Stage 0 - Strawman (草案阶段): 这是提案的初始阶段,通常是一些初步的想法或建议。这些提案还没有得到正式的讨论和接受。
  • Stage 1 - Proposal (提案阶段): 在这个阶段,提案已经经过了初步的讨论,并且有了详细的说明。它们通常由一个或多个TC39委员会成员提交,并等待进一步的审查和反馈。
  • Stage 2 - Draft (草案阶段): 在这个阶段,提案已经经过了初步的审查,包括语法和语义方面的考虑。提案可能会在这个阶段进行一些修改和改进。
  • Stage 3 - Candidate (候选阶段): 当提案达到这个阶段时,它们被认为是成熟的,可以被实施到JavaScript引擎中。这通常包括详细的规范文档和实际的参考实现。
  • Stage 4 - Finished (完成阶段): 这是提案的最终阶段,表示它们已经被正式接受为ECMAScript标准的一部分,可以在各种JavaScript环境中广泛使用。

本文链接:http://www.28at.com/showinfo-26-87984-0.html万众期待!JavaScript 宣布 Signals 即将到来!颠覆性的 API !

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 你真的知道 NPM、Yarn 与 PNPM 之间的区别吗?

下一篇: 在Go语言中,这样使用Json的

标签:
  • 热门焦点
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz“难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?”这一番话,出自百合网联合创
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,“7
  • 8月见!小米MIX Fold 3获得3C认证:支持67W快充

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都得到了不少爆料,而小米新一代折叠屏旗舰——小米MIX Fold 3此前也屡屡被传
  • 7月4日见!iQOO 11S官宣:“鸡血版”骁龙8 Gen2+200W快充加持

    上半年已接近尾声,截至目前各大品牌旗下的顶级旗舰都已悉数亮相,而下半年即将推出的顶级旗舰已经成为了数码圈爆料的主流,其中就包括全新的iQOO 11S系
  • iQOO Neo8 Pro评测:旗舰双芯加持 最强性能游戏旗舰

    【Techweb评测】去年10月,iQOO推出了一款Neo7手机,该机搭载了联发科天玑9000+,配备独显芯片Pro+,带来了同价位段最佳的游戏体验,一经上市便受到了诸多用
Top