vue3中总线事件的应用(组件间事件传递)

在两个组件关系比较复杂,在使用emit传递事件比较麻烦的情况下,可以使用总线bus来传递事件,具体实现如下:

1.引入插件mitt

bash 复制代码
npm install mitt --save

2.创建一个bus.js,放在你的方法文件中

javascript 复制代码
import mitt from 'mitt'
export const bus= mitt()

3.在触发事件的组件中使用

javascript 复制代码
import { bus} from '../../../utils/bus' 
const emitChangeHistory =()=>{
        bus.emit('changeHistory')
}

const save=()=>{
    ...
     emitChangeHistory() // 触发
}

4.在监控事件的组件中使用

javascript 复制代码
import { bus } from '../utils/bus' 
onMounted(()=>{
  bus.on('changeHistory',()=>{
     // 更新历史版本
     getHistories()
    })
  })
onBeforeUnmount(()=>{
  bus.off('changeHistory')
})

通过以上步骤,就比较容易的实现事件的传递了,尤其在组件的嵌套关系比较复杂时,应用就及其方便了。

相关推荐
siwangqishiq2几秒前
Vulkan Tutorial 教程翻译(四) 绘制三角形 2.2 呈现
前端
李三岁_foucsli2 分钟前
js中消息队列和事件循环到底是怎么个事,宏任务和微任务还存在吗?
前端·chrome
尽欢i2 分钟前
HTML5 拖放 API
前端·html
xiaominlaopodaren16 分钟前
Three.js 光影魔法:如何单独点亮你的3D模型
javascript
PasserbyX18 分钟前
一句话解释JS链式调用
前端·javascript
1024小神19 分钟前
tauri项目,如何在rust端读取电脑环境变量
前端·javascript
Nano24 分钟前
前端适配方案深度解析:从响应式到自适应设计
前端
古夕29 分钟前
如何将异步操作封装为Promise
前端·javascript
小小小小宇29 分钟前
前端定高和不定高虚拟列表
前端
@一枝梅35 分钟前
vue3 vite.config.js 引入bem.scss文件报错
javascript·rust·vue·scss