vue 事件$on,$off的注意事项

遇到的vue事件on,off的坑

组件 A 使用了 组件B

组件A产生事件:

TypeScript 复制代码
this.$root.$emit('event1', param)

组件B的created()里监听了事件:

TypeScript 复制代码
this.$root.$on('event1', (param)=>{...})

组件B的beforeDestroy()里取消了事件监听:

TypeScript 复制代码
this.$root.$off('event1')

组件刷新时出现了:组件B2 created() ->组件B1 beforeDestroy() 导致组件B2里的监听被清除了

修改方案:

组件B的created()里监听事件,留下函数句柄

TypeScript 复制代码
this.event1Callback = (param)=>{...}
this.$root.$on('event1', this.event1Callback)

组件B的beforeDestroy()里使用函数句柄取消事件监听:

TypeScript 复制代码
this.$root.$off('event1', this.event1Callback)
相关推荐
2301_816374334 分钟前
服务访问的用户认证
前端·网络
XS0301064 分钟前
从浏览器到互联网的完整数据流
前端·数据库·servlet·交互
hhb_6189 分钟前
MATLAB数值计算与数据可视化核心技术梳理及实战应用案例解析
前端
lichenyang45311 分钟前
从零理解微前端:基于 React + Vite + qiankun 的子应用切换 Demo
前端·react.js·状态模式
threelab14 分钟前
Three.js 极光效果着色器 | 三维可视化 / AI 提示词
javascript·人工智能·着色器
天天进步201519 分钟前
魔音漫创源码解析:性能优化: Electron 环境下的图片管理与文件系统协议处理优化
javascript·性能优化·electron
2601_9577808424 分钟前
AI智能体时代:为什么HTML正在取代Markdown成为新一代输出标准
大数据·前端·人工智能·gpt·html·claude
小妖66635 分钟前
js 实现python的SortedList有序集合
java·javascript·python
2301_815279521 小时前
如何实现C++ Web 自动化测试实战:常用函数全解析与场景化应用指南
开发语言·前端·c++
代码不停1 小时前
Spring Web MVC
前端·spring·mvc