日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

发布订阅模式 仿写Vue事件监听手写js实现

發布時間:2023/12/31 vue 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 发布订阅模式 仿写Vue事件监听手写js实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Vue組件中,可以使用?$emit,$on,$off?分別來分發、監聽、取消監聽事件實現組件通信,比較方便;

最近空閑時間手擼代碼實現了發布訂閱模式,可以進行組件通信。

話不多說,直接上代碼

/*** Created by laichengliang on 2021/04/13.*/const center = {}// 事件監聽 center.on = (eventName, callback) => {if (!center[eventName]) center[eventName] = []// 保存回調函數center[eventName].push(callback) }// 事件觸發 center.emit = (eventName, params) => {// 取出對應事件的回調函數const callbackArr = center[eventName]// 一一調用每一個回調事件callbackArr.map(callback => callback(params)) }// 事件移除 center.off = (eventName, callback) => {// 情況1:只傳eventName,移除所有事件// 情況2:傳eventName和callbackif (!callback) {center[eventName] = null} else {const callbackArr = center[eventName]// 刪除指定的callback回調const result = callbackArr.filter(callbackItem => callback !== callbackItem)// 重新賦值center[eventName] = result} }export default center

?

總結

以上是生活随笔為你收集整理的发布订阅模式 仿写Vue事件监听手写js实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。