摘要:這就是的不過(guò)想不明白這么優(yōu)秀的一個(gè)庫(kù)怎么會(huì)沒(méi)有實(shí)現(xiàn)對(duì)主題的訂閱這個(gè)功能呢,是不是中有替代方法,有小伙伴知道的話歡迎給我說(shuō)一下,不勝感激。
有不合理和錯(cuò)誤的地方歡迎小伙伴雅正,與大家共勉理解對(duì)主題訂閱
angular中的訂閱的實(shí)現(xiàn)是用的RX.js庫(kù),我們可以用Subject來(lái)實(shí)現(xiàn)事件的訂閱和發(fā)布
// 聲明一個(gè)可觀察對(duì)象 const obervable = new Subject(); // 訂閱 observable.subscript( data => { handler... }) // 發(fā)布 observable.next(data)
項(xiàng)目中離不了對(duì)同一個(gè)可觀察對(duì)象的不同主題的訂閱,比如單頁(yè)面應(yīng)用中某個(gè)負(fù)責(zé)權(quán)限的可觀察對(duì)象,進(jìn)行登錄和登出這兩個(gè)主題進(jìn)行訂閱,這個(gè)可觀察會(huì)根據(jù)用戶的登錄和登出去訂閱者發(fā)布登錄和登出的事件,讓訂閱者去執(zhí)行異形系列的操作(大型項(xiàng)目中這有利于降低功能間的耦合)
// 聲明一個(gè)可觀察對(duì)象,也是一個(gè)事件發(fā)布對(duì)象 const obervable = new Events(); // 對(duì)某個(gè)話題訂閱 obervable.subscript("login",handler) obervable.subscript("logout",handler) // 對(duì)某個(gè)主題發(fā)布實(shí)踐 observable.publish("login",data) observable.publish("logout",data)
給大家看個(gè)熟悉的,jQuery的on方法,方便小伙伴理解
// 選取一個(gè)dom元素 const dom = $("#obervableDom") // 對(duì)這個(gè)dom元素的主題進(jìn)行訂閱(事件監(jiān)聽) dom.on("click",handler) // dom元素發(fā)布主題(觸發(fā)事件) dom.click()
熟悉ionic的小伙伴可能有話說(shuō)了,這不就是ionic的Events嗎。這就是ionic的Events,不過(guò)想不明白R(shí)X.js這么優(yōu)秀的一個(gè)庫(kù)怎么會(huì)沒(méi)有實(shí)現(xiàn)對(duì)主題的訂閱這個(gè)功能呢,是不是RX.js中有替代方法,有小伙伴知道的話歡迎給我說(shuō)一下,不勝感激。
下面是我根據(jù)ionic Events類的思路和代碼重寫的一個(gè)新的Events,用了一些ES6的語(yǔ)法。用法文檔沒(méi)有變化(
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99030.html
摘要:定義觀察者設(shè)計(jì)模式中有一個(gè)對(duì)象被稱為根據(jù)觀察者維護(hù)一個(gè)對(duì)象列表,自動(dòng)通知它們對(duì)狀態(tài)的任何修改。與觀察者模式不同,它允許任何訂閱者實(shí)現(xiàn)一個(gè)適當(dāng)?shù)氖录幚沓绦騺?lái)注冊(cè)并接收發(fā)布者發(fā)布的主題通知。 觀察者設(shè)計(jì)模式是一個(gè)好的設(shè)計(jì)模式,這個(gè)模式我們?cè)陂_發(fā)中比較常見,尤其是它的變形模式訂閱/發(fā)布者模式我們更是很熟悉,在我們所熟悉jQuery庫(kù)和vue.js框架中我們都有體現(xiàn)。我在面試中也曾經(jīng)被問(wèn)到o...
摘要:微信公眾號(hào)后端進(jìn)階,專注后端技術(shù)分享框架分布式中間件服務(wù)治理等等。 微信公眾號(hào)「后端進(jìn)階」,專注后端技術(shù)分享:Java、Golang、WEB框架、分布式中間件、服務(wù)治理等等。 前段時(shí)間有個(gè)朋友向我提了一個(gè)問(wèn)題,他說(shuō)在搭建 RocketMQ 集群過(guò)程中遇到了關(guān)于消費(fèi)訂閱的問(wèn)題,具體問(wèn)題如下: showImg(https://segmentfault.com/img/remote/1460...
摘要:基于寫了一個(gè)涂鴉組件,說(shuō)項(xiàng)目之前先附上幾張效果圖項(xiàng)目地址由于篇幅問(wèn)題,本文先總體介紹一下項(xiàng)目的大概情況,重點(diǎn)介紹一下組件間的通信方式。一項(xiàng)目說(shuō)明該項(xiàng)目是基于構(gòu)建的多頁(yè)應(yīng)用,使用開發(fā),以組件的方式組織代碼。 基于svg寫了一個(gè)涂鴉組件,說(shuō)項(xiàng)目之前先附上幾張效果圖: 項(xiàng)目地址:SVGraffiti showImg(https://segmentfault.com/img/bVbassI?w...
摘要:觀察者模式定義設(shè)計(jì)模式中對(duì)的定義一個(gè)對(duì)象稱為維持一系列依賴于它觀察者的對(duì)象,將有關(guān)狀態(tài)的任何變更自動(dòng)通知給它們。如圖模式比較觀察者模式則多了一個(gè)類似于話題調(diào)度中心的流程,發(fā)布者和訂閱者解耦。 Obeserver(觀察者)模式 定義 《js設(shè)計(jì)模式》中對(duì)Observer的定義:一個(gè)對(duì)象(稱為subject)維持一系列依賴于它(觀察者)的對(duì)象,將有關(guān)狀態(tài)的任何變更自動(dòng)通知給它們。 《設(shè)計(jì)模...
閱讀 2601·2021-11-23 09:51
閱讀 3140·2019-08-30 15:54
閱讀 1094·2019-08-30 14:14
閱讀 3568·2019-08-30 13:59
閱讀 1445·2019-08-29 17:09
閱讀 1488·2019-08-29 16:24
閱讀 2873·2019-08-29 15:43
閱讀 941·2019-08-29 12:45