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)
相关推荐
matrixmind812 小时前
sindresorhustype-fest:TypeScript 工具类型集合
前端·javascript·其他·typescript
通往曙光的路上12 小时前
JUCJUCJUC
java·前端·数据库
Swift社区12 小时前
鸿蒙 PC vs Web:谁才是未来应用形态?
前端·华为·harmonyos
问心无愧051312 小时前
ctf show web入门54
前端·笔记
西贝爱学习12 小时前
pdf转TXT文本,适用于文字型PDF;扫描版PDF需要使用OCR(光学字符识别)技术来识别图中的文字
java·服务器·前端
故事和你9112 小时前
洛谷-【数据结构2-2】线段树1
开发语言·javascript·数据结构·算法·动态规划·图论
ZC跨境爬虫12 小时前
跟着 MDN 学 HTML day_43:(DocumentFragment 接口详解)
前端·javascript·vue.js·ui·html·音视频
Bigger12 小时前
mini-cc:用最小的代码,复刻一个“真正能干活”的 AI 编程智能体(并且把架构讲清楚)
前端·ai编程·claude
问心无愧051313 小时前
ctf show web 入门46
android·前端·笔记
ooseabiscuit13 小时前
PHP与C++:Web与系统编程的终极对决
前端·c++·php