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

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

相关推荐
寅时码34 分钟前
React 之死·终章:一个 useRef,把闭包陷阱、依赖数组、漫天 rerender 全送走
前端·react.js·ai编程
不好听61337 分钟前
HTML 事件监听机制:从 DOM Level 0 到 React 合成事件
前端·react.js·html
wordbaby1 小时前
为什么刷新页面就 404?聊聊 SPA 路由与 Nginx 的那点事
前端
daols881 小时前
vxe-table 渲染器教程一:实现金额输入控件
javascript·vue.js·vxe-table
不好听6131 小时前
React 核心概念:JSX、组件与数据驱动
前端·react.js
触底反弹1 小时前
🔥 React 零基础入门(中):500 行屎山代码到组件化的蜕变
前端·javascript·react.js
不好听6131 小时前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
GuWenyue1 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue1 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
小林ixn2 小时前
从 onclick 到 React 合成事件,再到完整应用逻辑:一次前端架构的深度剖析
前端·react.js·前端框架