成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

TC39全新提案【Signals】V0草案已公布,狀態(tài)管理將迎來全新革命?

開發(fā) 前端
從根本上說,Signals? 是與 Vue 中的 ref 相同的響應(yīng)性基礎(chǔ)類型(再前面我們也看到了類似的代碼例子)。**Signals是一個(gè)在訪問時(shí)跟蹤依賴、在變更時(shí)觸發(fā)副作用的值容器。

Hello,大家好,我是 Sunday。

今天咱們來看 TC39 的新提案 Signals 信號(hào)。該提案主要應(yīng)用在 狀態(tài)管理 相關(guān)的場景下,可以結(jié)合目前狀態(tài)管理工具(Vuex、Pinia、Redux、MobX 或者是單純的 ref(Vue3 中聲明響應(yīng)式數(shù)據(jù)的方案) 等)實(shí)現(xiàn)全新的解決方案。

目前猶大也在 vue 官網(wǎng)中提供了 Connection to Signals(與信號(hào) (signal) 的聯(lián)系) 的概念,并提到 Signal 的重要性

那么下面咱們就來看看這個(gè) Signal 到底是個(gè)什么東西。

什么是 TC39 以及標(biāo)準(zhǔn)提案流程

想要了解 Signal 咱們先來看看 TC39 提案!

TC39 提案是指由ECMAScript(JavaScript的標(biāo)準(zhǔn))技術(shù)委員會(huì)TC39(Technical Committee 39)提出的標(biāo)準(zhǔn)改進(jìn)建議。TC39負(fù)責(zé)JavaScript語言的演進(jìn)和標(biāo)準(zhǔn)化工作。一個(gè)提案從最初的想法到最終成為標(biāo)準(zhǔn),需要經(jīng)過多個(gè)階段的審核和修改。以下是提案的各個(gè)階段:

  1. Strawman(稻草人階段):這個(gè)階段是一個(gè)初步的想法,可能沒有具體的實(shí)現(xiàn)細(xì)節(jié),目的是引發(fā)討論和反饋。
  2. Proposal(提案階段):在這個(gè)階段,提案需要有一個(gè)詳細(xì)的規(guī)范描述,并且至少有一個(gè)實(shí)現(xiàn)。提案會(huì)在TC39會(huì)議上討論,若獲得足夠支持,則進(jìn)入下一階段。
  3. Draft(草案階段):在這個(gè)階段,提案已經(jīng)有了詳細(xì)的規(guī)范文檔,并且需要有至少兩個(gè)不同的實(shí)現(xiàn)。提案在這個(gè)階段需要進(jìn)行更廣泛的測試和反饋。
  4. Candidate(候選階段):提案在這個(gè)階段被認(rèn)為是穩(wěn)定的,并且所有可能的改進(jìn)建議已經(jīng)納入。規(guī)范文檔在這個(gè)階段已經(jīng)基本定型,剩下的工作主要是驗(yàn)證和確保沒有遺漏的錯(cuò)誤。
  5. Finished(完成階段):提案在這個(gè)階段成為ECMAScript標(biāo)準(zhǔn)的一部分,將被正式發(fā)布。此時(shí),提案的內(nèi)容已經(jīng)被完全采納和記錄。

為什么需要 Signals(信號(hào))

要開發(fā)復(fù)雜的用戶界面 (UI),JavaScript 應(yīng)用程序開發(fā)人員需要以高效的方式 存儲(chǔ)、計(jì)算、使?fàn)顟B(tài)失效、同步并將狀態(tài)推送到應(yīng)用程序的視圖層。UI 通常不僅僅涉及管理簡單的值,還經(jīng)常涉及渲染計(jì)算狀態(tài),而計(jì)算狀態(tài)依賴于其他值或狀態(tài)的復(fù)雜樹,而這些值或狀態(tài)本身也是計(jì)算出來的。

Signals 的目標(biāo)是提供用于管理此類應(yīng)用程序狀態(tài)的基礎(chǔ)設(shè)施,以便開發(fā)人員可以專注于業(yè)務(wù)邏輯,而不是這些重復(fù)的細(xì)節(jié)。

咱們來看一個(gè)例子(基于 preact):

import { signal } from "@preact/signals";

const count = signal(0);

// 通過訪問.Value讀取信號(hào)的值:
console.log(count.value);   // 0

// 更新信號(hào)的值
count.value += 1;

// 訪問值也必須要有 .value
console.log(count.value);  // 1

通過以上代碼我們可以看出來 Signals 與 vue 中的 ref 使用是有些類似的。它們都需要通過一個(gè)方法進(jìn)行初始化,同時(shí)訪問的時(shí)候需要 .value

Signals 與框架的關(guān)聯(lián)

除了我們剛才看到的 preact 之外,還有很多的框架也實(shí)現(xiàn)了 Signals。比如:

  • Solid
  • Angular
  • Qwik

從根本上說,Signals 是與 Vue 中的 ref 相同的響應(yīng)性基礎(chǔ)類型(再前面我們也看到了類似的代碼例子)。**Signals是一個(gè)在訪問時(shí)跟蹤依賴、在變更時(shí)觸發(fā)副作用的值容器。

這種基于響應(yīng)性基礎(chǔ)類型的范式在前端領(lǐng)域并不是一個(gè)特別新的概念:它可以追溯到十多年前的 Knockout observables 和 Meteor Tracker 等實(shí)現(xiàn)。

Vue 的選項(xiàng)式 API 和 React 的狀態(tài)管理庫 MobX 也是基于同樣的原則,只不過將基礎(chǔ)類型這部分隱藏在了對(duì)象屬性背后。

責(zé)任編輯:武曉燕 來源: 程序員Sunday
相關(guān)推薦

2021-07-30 18:35:10

JavaScript 模塊代碼

2022-09-21 08:00:58

JavaScriptTC39

2024-10-21 00:00:03

JavaScriptDate?API

2011-03-22 09:57:25

Chrome全新LogGoogle

2023-07-17 10:21:25

TC39JavaScript

2021-02-03 07:56:03

微軟Edge瀏覽器

2023-02-03 17:16:33

ECMAScriptAPITC39

2017-12-02 12:42:57

AWSEC2

2015-08-07 14:44:51

2022-07-07 08:30:50

類型注解原生JS

2025-05-21 16:34:21

云計(jì)算AkamaiGPU

2021-12-02 05:33:53

Windows 11操作系統(tǒng)微軟

2024-05-09 12:01:37

2021-12-16 08:47:56

Vue3 插件Vue應(yīng)用

2024-02-26 11:30:21

遠(yuǎn)洋

2021-06-07 07:53:53

Windows10操作系統(tǒng)微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 午夜影视| 国产精品日韩欧美一区二区三区 | 韩日精品视频 | 国产精品久久久久久一区二区三区 | 自拍偷拍第一页 | 亚洲视频区 | 精品一区二区三区四区五区 | 蜜桃视频在线观看免费视频网站www | 欧美高清一级片 | 九九久久精品 | 成人免费观看男女羞羞视频 | 国产精品久久久久久52avav | 国精品一区二区 | 国产成人在线一区 | 成人天堂 | 99久久国产| 欧美综合在线观看 | 一区二区三区在线免费观看视频 | 永久免费在线观看 | 亚洲在线一区 | 一区二区三区不卡视频 | 91网站在线看 | 宅女噜噜66国产精品观看免费 | 国产精品久久久久久久久久久免费看 | 国产精品视频久久久 | 1000部精品久久久久久久久 | 欧美一级欧美三级在线观看 | 黄色av网站在线免费观看 | 啪啪av| 国产精品久久9 | 国产区在线视频 | 成人激情视频在线观看 | 久久久.com| 九九热国产精品视频 | 日韩在线看片 | 国产精品视频一区二区三区不卡 | 国产99精品 | 福利网址 | 久久久久一区 | 成人在线欧美 | 精品国产一区二区国模嫣然 |