最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3使用mitt進(jìn)行組件通信的步驟

 更新時間:2021年05月06日 10:41:49   作者:梁同學(xué)de自言自語  
這篇文章主要介紹了Vue3使用mitt進(jìn)行組件通信的步驟,幫助大家更好的理解和學(xué)習(xí)使用vue,感興趣的朋友可以了解下
  • Vue2.x使用EventBus進(jìn)行組件通信,而Vue3.x推薦使用mitt.js。
  • 比起Vue實(shí)例上的EventBus,mitt.js好在哪里呢?首先它足夠小,僅有200bytes,其次支持全部事件的監(jiān)聽和批量移除,它還不依賴Vue實(shí)例,所以可以跨框架使用,React或者Vue,甚至jQuery項(xiàng)目都能使用同一套庫。

1. 安裝

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

yarn add mitt

或者通過npm安裝

npm install --save mitt

2. 引入到項(xiàng)目并掛載

可以在main.js掛載到全局

// 標(biāo)準(zhǔn)的ES模塊化引入方式
import mitt from 'mitt'

const app = createApp(App)

// vue3.x的全局實(shí)例,要掛載在config.globalProperties上
app.config.globalProperties.$EventBus = new mitt()

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

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

/views/Home.vue:業(yè)務(wù)模塊引入來使用

import EventBus from '/common/EventBus.js'

3. 使用

通過on監(jiān)聽/emit觸發(fā)

/*
 * App.vue
 */
// setup中沒有this,需要通過getCurrentInstance來獲取Vue實(shí)例
import { getCurrentInstance } from 'vue'
import { Mp3Player } from '/common/Mp3Player.js'

export default {
  setup(){
    // ctx等同于Vue2.x的this
    const { ctx } = getCurrentInstance()
    
    // 監(jiān)聽-如果有新任務(wù)則播放音效
    ctx.$EventBus.on('newTask', data => {
      Mp3Player.play()
    })

    // 也可以通過*監(jiān)聽所有任務(wù)
    ctx.$EventBus.on('*', data => {
      console.log('EventBus come in', data)
    })
  }
}


/*
 * Control.vue
 */
// 判斷有新任務(wù)時,觸發(fā)
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進(jìn)行組件通信的步驟的詳細(xì)內(nèi)容,更多關(guān)于Vue3 用mitt進(jìn)行組件通信的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

枣庄市| 苏尼特左旗| 金塔县| 松潘县| 双江| 德州市| 五家渠市| 阿城市| 萨嘎县| 兴义市| 红原县| 尤溪县| 辛集市| 汤阴县| 察雅县| 南通市| 读书| 鸡西市| 宜州市| 玛纳斯县| 鲁山县| 巴林右旗| 桐梓县| 定结县| 利津县| 丹阳市| 平陆县| 望奎县| 墨江| 赤峰市| 曲周县| 德令哈市| 闵行区| 文山县| 东乡族自治县| 桦川县| 北川| 伊吾县| 长治市| 澄江县| 邹平县|