使用$emit都会建立的一个新的消息机制,而组件销毁时这个消息机制一直未被销毁。不停的切换页面,会不断的挂载和销毁组件,如果每切换一次页面就点一次按钮,就会创建一个新的消息机制,不断的创建而不销毁,导致B组件接受事件里的操作重复触发
beforeDestroy() {
this.bus.$off();
},
每次跳转最后清除bus,就不会出现以上问题,需加在传值页面a传b就写在A页面。
bus用法
main.js
加入
Vue.prototype.bus = new Vue()
传值
this.bus.$emit('etids',val)
接收值
mounted() { let vm = this // 用$on事件来接收参数 this.bus.$on('etids', (data) => { this.StroeState=data })
}