亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Vue3使用mitt進行組件通信的步驟

瀏覽:80日期:2022-09-30 11:02:41
Vue2.x使用EventBus進行組件通信,而Vue3.x推薦使用mitt.js。 比起Vue實例上的EventBus,mitt.js好在哪里呢?首先它足夠小,僅有200bytes,其次支持全部事件的監聽和批量移除,它還不依賴Vue實例,所以可以跨框架使用,React或者Vue,甚至jQuery項目都能使用同一套庫。1. 安裝

推薦使用yarn安裝(用過都知道有多絲滑)

yarn add mitt

或者通過npm安裝

npm install --save mitt2. 引入到項目并掛載

可以在main.js掛載到全局

// 標準的ES模塊化引入方式import mitt from ’mitt’const app = createApp(App)// vue3.x的全局實例,要掛載在config.globalProperties上app.config.globalProperties.$EventBus = new mitt()

/common/EventBus.js:也可以封裝一個ES模塊,對外暴露一個Mitt實例

import mitt from ’mitt’export default new mitt()

/views/Home.vue:業務模塊引入來使用

import EventBus from ’/common/EventBus.js’3. 使用

通過on監聽/emit觸發

/* * App.vue */// setup中沒有this,需要通過getCurrentInstance來獲取Vue實例import { getCurrentInstance } from ’vue’import { Mp3Player } from ’/common/Mp3Player.js’export default { setup(){ // ctx等同于Vue2.x的this const { ctx } = getCurrentInstance()// 監聽-如果有新任務則播放音效 ctx.$EventBus.on(’newTask’, data => { Mp3Player.play() }) // 也可以通過*監聽所有任務 ctx.$EventBus.on(’*’, data => { console.log(’EventBus come in’, data) }) }}/* * Control.vue */// 判斷有新任務時,觸發ctx.$EventBus.emit(’newTask’, data)

off移除事件

import { onBeforeUnmount, getCurrentInstance } from ’vue’export default { setup(){ const { ctx } = getCurrentInstance() onBeforeUnmount(() => { // 移除指定事件 ctx.$EventBus.off(’newTask’) // 移除全部事件 ctx.$EventBus.all.clear() }) }}

以上就是Vue3使用mitt進行組件通信的步驟的詳細內容,更多關于Vue3 用mitt進行組件通信的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 欧美丰满丝袜videossex | 久久久亚洲国产精品主播 | 亚洲精品国产国语 | 国产精品va欧美精品 | 久久超级碰| 久久777国产线看是看精品 | 国产麻豆视频免费观看 | 青青草国产一区二区三区 | 丝瓜着色的视频 | 亚洲a毛片 | 免费观看黄的小视频 | 国产在线麻豆精品 | 日本人伦一区二区三区 | 日本特黄特色高清免费视频 | 日韩一区二区超清视频 | 国产真实伦偷精品 | 成人免费黄色片 | 亚洲高清国产一区二区三区 | 91青青视频 | 国产精品91av | 国产视频自拍偷拍 | 91国内精品 | 欧美一区二区三区免费观看视频 | 婷婷射| 日韩经典欧美精品一区 | 日韩欧美亚洲一区二区综合 | 精品视频一区二区观看 | 尤物视频在线观看免费 | 成人精品美女隐私漫画 | 国产精品福利无圣光在线一区 | 国产网红主播精品福利大秀专区 | 日韩一区二区三区免费 | 看久久 | 国产视频毛片 | 成人啪啪网站 | 国产免费jizz在线播放视频 | 久久久久久a亚洲欧洲aⅴ | 国产精品无码久久av | 加勒比色老久久爱综合网 | 免费网站www7788con| 婷婷黄色网|