1.安装mitt

npm i mitt

2.在main.js注册

// ...

import mitt from 'mitt'

const $bus = {}

const emitter = mitt()

$bus.on = emitter.on

$bus.emit = emitter.emit

$bus.off = emitter.off

app.config.globalProperties.$bus = $bus

app.mount('#app')

3.使用

3.1 在接收的页面

import {getCurrentInstance, onUnmounted} from 'vue'

setup() {

        const $bus = getCurrentInstance().appContext.config.globalProperties.$bus

        $bus.on('eventName', options => {

                // 自定义业务

        })

        // 清除监听

        onUnmounted(() => {

                $bus.off('eventName')

        })

}

3.2 在发布的页面

import {getCurrentInstance} from 'vue

setup() {

        const $bus = getCurrentInstance().appContext.config.globalProperties.$bus

        let params = {a: 123} // 自定义数据

        $bus.emit('eventName', params)

}

Logo

前往低代码交流专区

更多推荐