日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Signal 即將成為JavaScript的一部分

來源: 責編: 時間:2024-05-16 09:06:46 211觀看
導讀什么是響應性?在過去的幾年中,響應性成為了所有現代前端框架以及React庫的核心。對于不熟悉前端開發的人來說,起初這可能是一個令人困惑的概念,因為它改變了常規的、自上而下的、從調用者到被調用者的順序工作流。在響應

什么是響應性?

在過去的幾年中,響應性成為了所有現代前端框架以及React庫的核心。GNt28資訊網——每日最新資訊28at.com

對于不熟悉前端開發的人來說,起初這可能是一個令人困惑的概念,因為它改變了常規的、自上而下的、從調用者到被調用者的順序工作流。GNt28資訊網——每日最新資訊28at.com

在響應性范式中,當事情發生變化時,數據會自動更新,下面簡單展示一下偽代碼:GNt28資訊網——每日最新資訊28at.com

effect: console.log(x+2)x = 2x = 3

這種方法允許開發者以一種更直觀的方式處理數據和UI的更新,使得用戶界面能夠實時反映底層數據的變化。GNt28資訊網——每日最新資訊28at.com

根據響應性范式,應用程序可以在變量x發生變化時,無需程序員的特別努力,就能顯示NaN、4和5等多種結果。GNt28資訊網——每日最新資訊28at.com

這里極度簡化了這個話題,只是為了給那些對響應性一無所知的人一個大致的了解。GNt28資訊網——每日最新資訊28at.com

需要指出的是,響應性在前端開發中的許多情況下都非常有用。例如,在顯示用戶界面時,一個框架可以識別變量何時發生變化以更新用戶界面。比如當你展示一個實時的溫度計時。GNt28資訊網——每日最新資訊28at.com

響應性的應用場景遠不止于此,幾乎所有的前端框架都在使用響應性技術。甚至還有一個響應式的jQuery庫。GNt28資訊網——每日最新資訊28at.com

如何實現響應性?

響應性在實際應用中的一個很好的例子是電子表格。當你在電子表格中基于其他單元格的值輸入一個計算公式時,你不需要手動更新計算結果。電子表格應用會自動檢測到變化,并更新所有基于修改過的單元格的計算值。GNt28資訊網——每日最新資訊28at.com

在前端框架中,實現響應性有多種方法。一個著名的例子是使用RxJS,它依賴于觀察者(Observables)、訂閱者(Subscribers)和主題(Subjects)。如果你經常處理異步數據流,這是一個很棒的庫。GNt28資訊網——每日最新資訊28at.com

在各種框架中,響應性的復雜性對開發者來說是隱藏的。GNt28資訊網——每日最新資訊28at.com

在React中,你必須明確提供依賴列表:GNt28資訊網——每日最新資訊28at.com

圖片圖片GNt28資訊網——每日最新資訊28at.com

一旦reactive roomId 或 serverUrl 發生變化,上面的代碼片段將會斷開當前房間并連接到新的房間。GNt28資訊網——每日最新資訊28at.com

在Vue中,你甚至不需要提供依賴列表:GNt28資訊網——每日最新資訊28at.com

圖片圖片GNt28資訊網——每日最新資訊28at.com

Vue會自行判斷,如果copy.count發生變化,就應該重新運行代碼。GNt28資訊網——每日最新資訊28at.com

如果我們審視所有主要的框架和庫,會發現每個框架和庫中的響應性幾乎達到了相同的API水平,并且從用戶的角度看幾乎在做相同的事情。GNt28資訊網——每日最新資訊28at.com

Signals 的起源如何?

Angular進行的最后一次主要切換到類似的API是在2023年4月3日發布的一份RFC中詳細說明的。該文檔深入探討了為什么zone.js的反應性不足,并且Angular必須轉向更細粒度的Signals。GNt28資訊網——每日最新資訊28at.com

并不是說Signals在這方面完全是新事物,更多的是基于研究如何以最佳方式提供響應性的結論。我真的認為應該將Signals的來源歸功于Solid。GNt28資訊網——每日最新資訊28at.com

自從那次重大工作完成以后,它鞏固了整個社區對細粒度響應性的采納。因為從那時起我們知道,幾乎每個框架和庫都使用幾乎相同的響應性模型,但有些用的是tomato,有些則用的是tomato。GNt28資訊網——每日最新資訊28at.com

推動 Signal 標準化的努力

考慮到這一點,我們可以想象許多可能的結果。一切可能維持現狀,每個框架使用自己的響應性模型。在這種情況下,人們實際上在使用不同名稱下的相同事物。GNt28資訊網——每日最新資訊28at.com

另一個情景是,每個人突然使用提供響應性模型的庫。到目前為止,這還沒有發生,但它仍然是桌面上的一個選項。GNt28資訊網——每日最新資訊28at.com

第三個,也是最瘋狂的情景,將是將 signals 納入 Ecmascript 本身。這意味著它將成為 JavaScript 本身的一部分。GNt28資訊網——每日最新資訊28at.com

聽起來瘋狂嗎?GNt28資訊網——每日最新資訊28at.com

確實。GNt28資訊網——每日最新資訊28at.com

但一切都在2023年2月一次偶然的 Twitter 聊天中浮出水面:每個人已經有或正在調整響應模型以基于 Signals 的模型。參與討論的人之一是 Daniel Ehrenberg。GNt28資訊網——每日最新資訊28at.com

在過去的一年中,你真的不知道是否有什么事情正在醞釀,直到一個月前。GNt28資訊網——每日最新資訊28at.com

那時,Daniel 在紐約提議了一個名為 queerjs 的演講,這個名字相當令人費解:GNt28資訊網——每日最新資訊28at.com

他提供了一個相當引人入勝的描述:GNt28資訊網——每日最新資訊28at.com

一種選擇是通過使 Signals 內置到 JavaScript 中,如 Promises,來穩定生態系統,提高性能和互操作性。但是...最好避免像 Promises 那樣的一些陷阱,例如它們始終開啟的調度器。GNt28資訊網——每日最新資訊28at.com

這意味著,Daniel 真的在考慮 Signals 是否應該成為 JavaScript 的一部分!GNt28資訊網——每日最新資訊28at.com

Signals可能會成為JavaScript的一部分

總的來說,這些都還只是討論階段。但是在JavaScript世界里,事情發展迅速。甚至比C++成為一種內存安全的編程語言還要快,這是肯定的!GNt28資訊網——每日最新資訊28at.com

兩天前,Daniel提議在4月的TC39會議上討論這個主題。這意味著它可能很快就會進入第一階段!GNt28資訊網——每日最新資訊28at.com

這是一件大事,因為TC39,即技術委員會39,負責標準化Ecmascript,而一旦某樣東西成為標準的一部分,遲早會成為JavaScript的一部分!GNt28資訊網——每日最新資訊28at.com

當然,這不會像在周五晚上發布到生產環境那么簡單。GNt28資訊網——每日最新資訊28at.com

Signals 可能需要時間才能成為 JavaScript 的標準功能

Signals 要成為 JavaScript 的標準功能,需要經過六個標準化階段。因此,鑒于 Signals 的復雜性和響應性,這對整個委員會來說是一項艱巨的工作。但同時,它也將吸引包括前端框架開發者在內的許多開發者的關注。GNt28資訊網——每日最新資訊28at.com

在最佳情況下,他們所有人都應該滿意于將來某天切換到 Signals。GNt28資訊網——每日最新資訊28at.com

但這需要仔細的工作和解決許多難題。例如,標準應該是開放的還是封閉的。GNt28資訊網——每日最新資訊28at.com

展望未來幾年,我們可能會發現每個框架都使用標準的 JavaScript Signals。GNt28資訊網——每日最新資訊28at.com

這將有助于提高性能、可維護性,并能夠將知識從一個框架轉移到另一個框架。GNt28資訊網——每日最新資訊28at.com

許多好處確實可以讓這種努力變得值得。GNt28資訊網——每日最新資訊28at.com

同時,這個過程也可能在任何時候被終止,所以目前一切皆有可能。GNt28資訊網——每日最新資訊28at.com

然而,我無法停止這種感覺,現在是推動 Signals 前進的絕佳時機。特別是知道從2024年3月18日開始,還有一個Observable/Subscription模型的孵化過程,Signals 可以從中受益。GNt28資訊網——每日最新資訊28at.com

Signal 提案剛剛發布!

Rob Eisenberg 和 Daniel Ehrenberg 剛剛發布了 Signal 標準的第0階段提案。GNt28資訊網——每日最新資訊28at.com

已經有一個 polyfill 可供測試,而這個提案已經秘密開發了8個月!GNt28資訊網——每日最新資訊28at.com

作者成功地吸引了來自各種框架和庫的作者參與:GNt28資訊網——每日最新資訊28at.com

他們在這里合作,開發了一個可以支持他們核心響應性需求的通用模型。當前的草案基于來自 Angular, Bubble, Ember, FAST, MobX, Preact, Qwik, RxJS, Solid, Starbeam, Svelte, Vue, Wiz 等作者/維護者的設計輸入。GNt28資訊網——每日最新資訊28at.com

以下是一個如何使用 Signals 的例子:GNt28資訊網——每日最新資訊28at.com

const counter = new Signal.State(0);const isEven = new Signal.Computed(  () => (counter.get() & 1) == 0);const parity = new Signal.Computed(  () => isEven.get() ? "even" : "odd");// 庫或框架定義基于其他 Signal 原語的效果declare function effect(cb: () => void):   (() => void);effect(() => element.innerText   = parity.get());// 模擬對計數器的外部更新...setInterval(() => counter.set(  counter.get() + 1), 1000);

這是多么令人震驚的簡單易用啊!GNt28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-88341-0.htmlSignal 即將成為JavaScript的一部分

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 怎么更好的使用Gradle?

下一篇: C# 中的 Case 表達式:Switch 語句的深入解析

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
99riav国产精品| 亚洲精品乱码久久久久久久久| 欧美日韩八区| 国产精品福利在线观看网址| 国产精品久久久免费| 国产在线精品一区二区中文| 亚洲国产日韩在线| 亚洲视频在线观看一区| 国产精品国产三级国产普通话蜜臀 | 99精品国产在热久久婷婷| 亚洲午夜三级在线| 久久精品一区二区三区不卡牛牛| 欧美成人首页| 国产精品视频观看| 亚洲国产精品成人精品| 国产精品99久久久久久久女警| 久久国产精品久久久| 欧美华人在线视频| 国产毛片精品视频| 亚洲欧洲另类| 欧美一区久久| 欧美久久久久久久久| 国产精品网站一区| 亚洲人成亚洲人成在线观看图片| 亚洲欧美日韩爽爽影院| 免费在线一区二区| 国产精品视频自拍| 亚洲精品欧美日韩| 欧美在线视频一区二区三区| 欧美久久婷婷综合色| 国语自产在线不卡| 亚洲一区三区电影在线观看| 欧美超级免费视 在线| 国产农村妇女精品一二区| 亚洲人成精品久久久久| 久久黄色小说| 国产精品国产三级国产aⅴ浪潮 | 一区二区三区四区国产| 久久久久免费观看| 国产精品女人网站| 亚洲精选成人| 另类av一区二区| 国产一区91精品张津瑜| 亚洲视频免费看| 欧美激情亚洲自拍| 亚洲大胆人体视频| 久久久精品一区二区三区| 国产精品国产三级国产| 日韩视频不卡中文| 免费在线亚洲| 国语精品中文字幕| 午夜精品视频| 欧美视频日韩视频| 亚洲欧洲综合另类| 美女视频黄免费的久久| 国产亚洲日本欧美韩国| 亚洲欧美影院| 国产精品久久久久av| 一区二区三区欧美成人| 欧美片第1页综合| 91久久精品国产91久久| 久久一区免费| 一区二区三区亚洲| 久久久999精品| 国产亚洲欧美一区| 午夜天堂精品久久久久| 欧美午夜理伦三级在线观看| 日韩视频一区二区在线观看 | 欧美黄色免费网站| 亚洲成人在线视频播放| 久久久精品网| 韩国女主播一区| 久久精品日产第一区二区三区 | 国语自产在线不卡| 久久经典综合| 国产亚洲免费的视频看| 午夜欧美理论片| 国产久一道中文一区| 亚洲自拍另类| 国产免费成人av| 午夜久久电影网| 国产精品麻豆va在线播放| 亚洲影院在线| 国产乱码精品一区二区三区不卡 | 欧美成人dvd在线视频| 欧美大片一区二区| 亚洲第一精品久久忘忧草社区| 久久婷婷国产综合国色天香| 禁断一区二区三区在线| 久久中文久久字幕| 亚洲激情影视| 欧美精品一区二| 99综合精品| 国产精品av一区二区| 亚洲综合视频在线| 国产一区二区三区自拍| 久久久中精品2020中文| ●精品国产综合乱码久久久久| 男女精品网站| 99精品视频免费观看| 国产精品不卡在线| 久久国产精品久久久| 黄色亚洲大片免费在线观看| 免费成人毛片| 99视频精品全国免费| 国产精品嫩草99av在线| 欧美一区二区三区久久精品| 伊人影院久久| 欧美日本中文| 午夜久久电影网| 亚洲第一级黄色片| 欧美涩涩视频| 欧美在线视频一区| 亚洲激情专区| 国产精品久久久久aaaa樱花 | 欧美激情小视频| 亚洲一区国产视频| 韩日午夜在线资源一区二区| 欧美电影资源| 亚洲免费在线播放| 精品动漫一区二区| 欧美人妖在线观看| 亚洲欧美亚洲| 亚洲激情六月丁香| 国产精品视频999| 美女精品视频一区| 亚洲午夜久久久久久尤物| 国外成人在线视频| 欧美精品一区三区| 欧美一区激情| 亚洲每日更新| 国产亚洲精品aa午夜观看| 欧美电影免费观看| 午夜亚洲福利| 亚洲精品美女在线观看| 国产欧美日韩一区二区三区在线观看 | 亚洲午夜国产一区99re久久| 韩日午夜在线资源一区二区| 欧美日韩午夜激情| 久久久久久久网站| 亚洲视频一区在线| 亚洲国产导航| 国产精品一区二区三区四区五区| 免费在线观看精品| 欧美在线视频在线播放完整版免费观看 | 国产午夜精品久久久久久久| 欧美成人免费小视频| 性亚洲最疯狂xxxx高清| 亚洲精选成人| 狠狠色香婷婷久久亚洲精品| 国产精品v欧美精品v日韩| 裸体一区二区三区| 小黄鸭精品aⅴ导航网站入口| 亚洲精品社区| 黄网动漫久久久| 国产精品日本精品| 欧美伦理一区二区| 蜜臀久久99精品久久久久久9 | 亚洲激情图片小说视频| 久久精品盗摄| 亚洲特级片在线| 亚洲国产精品www| 国产亚洲美州欧州综合国| 国产精品v欧美精品v日韩| 欧美刺激午夜性久久久久久久| 久久爱www| 亚洲男人第一网站| 一本色道久久综合狠狠躁篇的优点 | 欧美成人午夜免费视在线看片| 欧美在线观看网址综合| 亚洲一区二区高清| 亚洲精品一品区二品区三品区| 韩国v欧美v日本v亚洲v| 国产精品亚洲综合一区在线观看| 欧美日韩国产区| 欧美大片免费看| 久久综合久色欧美综合狠狠| 欧美一区二区精品在线| 亚洲欧美国产高清va在线播| 一区二区av在线| 亚洲免费大片| 亚洲靠逼com| 亚洲人成人一区二区在线观看| 一区在线免费观看| 国内精品久久久久久久影视蜜臀| 国产色爱av资源综合区| 国产精品亚洲产品| 国产精品久久久一本精品| 欧美视频一区二区三区…| 欧美日韩成人综合| 欧美精品手机在线| 欧美精品v日韩精品v国产精品| 男人插女人欧美| 欧美成人免费全部| 欧美成人午夜剧场免费观看| 欧美多人爱爱视频网站| 欧美黄色免费网站| 欧美精品日韩精品| 欧美日本韩国一区二区三区| 欧美 日韩 国产一区二区在线视频| 久久婷婷久久| 欧美暴力喷水在线| 欧美另类综合| 国产精品久线观看视频|