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

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

Signal 即將成為JavaScript的一部分

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

什么是響應性?

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

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

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

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

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

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

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

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

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

如何實現響應性?

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

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

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

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

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

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

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

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

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

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

Signals 的起源如何?

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

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

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

推動 Signal 標準化的努力

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

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

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

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

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

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

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

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

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

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

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

Signals可能會成為JavaScript的一部分

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

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

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

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

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

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

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

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

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

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

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

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

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

Signal 提案剛剛發布!

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

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

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

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

以下是一個如何使用 Signals 的例子:ZqO28資訊網——每日最新資訊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);

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

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

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

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

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

標簽:
  • 熱門焦點
  • 把LangChain跑起來的三個方法

    使用LangChain開發LLM應用時,需要機器進行GLM部署,好多同學第一步就被勸退了,那么如何繞過這個步驟先學習LLM模型的應用,對Langchain進行快速上手?本片講解3個把LangChain跑起來
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數量是否小于或等于一個數字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度。  CRM軟件市場規模如今超過580
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 雅柏威士忌多款單品價格大跌,泥煤頂流也不香了?

    來源 | 烈酒商業觀察編 | 肖海林今年以來,威士忌市場開始出現了降溫跡象,越來越多不斷暴漲的網紅威士忌也開始悄然回歸市場理性。近日,LVMH集團旗下蘇格蘭威士忌品牌雅柏(Ardbeg
  • 2023年,我眼中的字節跳動

    此時此刻(2023年7月),字節跳動從未上市,也從未公布過任何官方的上市計劃;但是這并不妨礙它成為中國最受關注的互聯網公司之一。從2016-17年的抖音強勢崛起,到2018年的“頭騰
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態LT(ID:LingTai_LT)如何成為一家偉大企業?答案一定是對“勢”的把握,這其中最關鍵的當屬對企業戰略的制定,且能夠站在未來看現在,即使這其中的
  • OPPO K11搭載高性能石墨散熱系統:旗艦同款 性能涼爽釋放

    日前OPPO官方宣布,將于7月25日14:30舉辦新品發布會,屆時全新的OPPO K11將正式與大家見面,將主打旗艦影像,和同檔位競品相比,其最大的賣點就是將配備索尼
Top 主站蜘蛛池模板: 九江县| 台山市| 探索| 凤冈县| 定兴县| 台中县| 平安县| 棋牌| 德令哈市| 仲巴县| 镶黄旗| 平安县| 乌拉特前旗| 乐平市| 马公市| 曲松县| 兰考县| 宁夏| 安新县| 乌鲁木齐市| 唐山市| 布拖县| 柘城县| 吉水县| 东山县| 闸北区| 云南省| 芒康县| 兴化市| 永丰县| 龙门县| 大同县| 集安市| 太保市| 连云港市| 遵义市| 错那县| 涿州市| 平武县| 邯郸市| 治县。|