成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

js實(shí)現(xiàn)對主題的訂閱(topic訂閱),內(nèi)附源碼

guqiu / 1055人閱讀

摘要:這就是的不過想不明白這么優(yōu)秀的一個庫怎么會沒有實(shí)現(xiàn)對主題的訂閱這個功能呢,是不是中有替代方法,有小伙伴知道的話歡迎給我說一下,不勝感激。

有不合理和錯誤的地方歡迎小伙伴雅正,與大家共勉
理解對主題訂閱

angular中的訂閱的實(shí)現(xiàn)是用的RX.js庫,我們可以用Subject來實(shí)現(xiàn)事件的訂閱和發(fā)布

// 聲明一個可觀察對象
const obervable = new Subject();
// 訂閱
observable.subscript( data => {
    handler...
})
// 發(fā)布
observable.next(data)

項(xiàng)目中離不了對同一個可觀察對象的不同主題的訂閱,比如單頁面應(yīng)用中某個負(fù)責(zé)權(quán)限的可觀察對象,進(jìn)行登錄和登出這兩個主題進(jìn)行訂閱,這個可觀察會根據(jù)用戶的登錄和登出去訂閱者發(fā)布登錄和登出的事件,讓訂閱者去執(zhí)行異形系列的操作(大型項(xiàng)目中這有利于降低功能間的耦合)

// 聲明一個可觀察對象,也是一個事件發(fā)布對象
const obervable = new Events();
// 對某個話題訂閱
obervable.subscript("login",handler)
obervable.subscript("logout",handler)
// 對某個主題發(fā)布實(shí)踐
observable.publish("login",data)
observable.publish("logout",data)

給大家看個熟悉的,jQuery的on方法,方便小伙伴理解

// 選取一個dom元素
const dom = $("#obervableDom")
// 對這個dom元素的主題進(jìn)行訂閱(事件監(jiān)聽)
dom.on("click",handler)
// dom元素發(fā)布主題(觸發(fā)事件)
dom.click()

熟悉ionic的小伙伴可能有話說了,這不就是ionic的Events嗎。這就是ionic的Events,不過想不明白RX.js這么優(yōu)秀的一個庫怎么會沒有實(shí)現(xiàn)對主題的訂閱這個功能呢,是不是RX.js中有替代方法,有小伙伴知道的話歡迎給我說一下,不勝感激。

下面是我根據(jù)ionic Events類的思路和代碼重寫的一個新的Events,用了一些ES6的語法。用法文檔沒有變化(

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/99030.html

相關(guān)文章

  • 觀察者設(shè)計(jì)模式

    摘要:定義觀察者設(shè)計(jì)模式中有一個對象被稱為根據(jù)觀察者維護(hù)一個對象列表,自動通知它們對狀態(tài)的任何修改。與觀察者模式不同,它允許任何訂閱者實(shí)現(xiàn)一個適當(dāng)?shù)氖录幚沓绦騺碜圆⒔邮瞻l(fā)布者發(fā)布的主題通知。 觀察者設(shè)計(jì)模式是一個好的設(shè)計(jì)模式,這個模式我們在開發(fā)中比較常見,尤其是它的變形模式訂閱/發(fā)布者模式我們更是很熟悉,在我們所熟悉jQuery庫和vue.js框架中我們都有體現(xiàn)。我在面試中也曾經(jīng)被問到o...

    kviccn 評論0 收藏0
  • RocketMQ為什么要保證訂閱關(guān)系一致性?

    摘要:微信公眾號后端進(jìn)階,專注后端技術(shù)分享框架分布式中間件服務(wù)治理等等。 微信公眾號「后端進(jìn)階」,專注后端技術(shù)分享:Java、Golang、WEB框架、分布式中間件、服務(wù)治理等等。 前段時間有個朋友向我提了一個問題,他說在搭建 RocketMQ 集群過程中遇到了關(guān)于消費(fèi)訂閱的問題,具體問題如下: showImg(https://segmentfault.com/img/remote/1460...

    gekylin 評論0 收藏0
  • 設(shè)計(jì)一個基于svg涂鴉組件(一)

    摘要:基于寫了一個涂鴉組件,說項(xiàng)目之前先附上幾張效果圖項(xiàng)目地址由于篇幅問題,本文先總體介紹一下項(xiàng)目的大概情況,重點(diǎn)介紹一下組件間的通信方式。一項(xiàng)目說明該項(xiàng)目是基于構(gòu)建的多頁應(yīng)用,使用開發(fā),以組件的方式組織代碼。 基于svg寫了一個涂鴉組件,說項(xiàng)目之前先附上幾張效果圖: 項(xiàng)目地址:SVGraffiti showImg(https://segmentfault.com/img/bVbassI?w...

    cartoon 評論0 收藏0
  • JS設(shè)計(jì)模式之Obeserver(觀察者)模式、Publish/Subscribe(發(fā)布/訂閱)模式

    摘要:觀察者模式定義設(shè)計(jì)模式中對的定義一個對象稱為維持一系列依賴于它觀察者的對象,將有關(guān)狀態(tài)的任何變更自動通知給它們。如圖模式比較觀察者模式則多了一個類似于話題調(diào)度中心的流程,發(fā)布者和訂閱者解耦。 Obeserver(觀察者)模式 定義 《js設(shè)計(jì)模式》中對Observer的定義:一個對象(稱為subject)維持一系列依賴于它(觀察者)的對象,將有關(guān)狀態(tài)的任何變更自動通知給它們。 《設(shè)計(jì)模...

    荊兆峰 評論0 收藏0

發(fā)表評論

0條評論

guqiu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<