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')
})

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

相关推荐
V+zmm10134几秒前
在线办公小程序(springboot论文源码调试讲解)
vue.js·spring boot·微信小程序·小程序·毕业设计
前端菜鸟日常35 分钟前
为啥vue3设计不直接用toRefs,而是reactive+toRefs
vue.js
一路向前的月光1 小时前
react(9)-redux
前端·javascript·react.js
大数据追光猿1 小时前
Python中的Flask深入认知&搭建前端页面?
前端·css·python·前端框架·flask·html5
莫忘初心丶1 小时前
python flask 使用教程 快速搭建一个 Web 应用
前端·python·flask
xw52 小时前
Trae初体验
前端·trae
横冲直撞de2 小时前
前端接收后端19位数字参数,精度丢失的问题
前端
我是哈哈hh2 小时前
【JavaScript进阶】作用域&解构&箭头函数
开发语言·前端·javascript·html
摸鱼大侠想挣钱2 小时前
ActiveX控件
前端
谢尔登2 小时前
Vue 和 React 响应式的区别
前端·vue.js·react.js