详解利用eventemitter2实现Vue组件通信(2)

这里使用的是,官方文档的on方法,传入eventName和回调,给实例绑事件,并定义回调函数。
同一个事件名,可以绑定多个事件回调,当事件被触发时,会顺序执行同名的回调函数

this.$emit_inst.on(this.$emit_name.CHECK_TYPE_TWO, obj => { this.value1 = Object.is(NaN,parseInt(obj.value)) obj.type = this.value1 ? "success" : "warning" obj.msg = this.value1 ? "字符" : "数字" console.log("CHECK_TYPE_TWO第一次触发") }) this.$emit_inst.on(this.$emit_name.CHECK_TYPE_TWO, obj => { console.log("CHECK_TYPE_TWO第二次触发") })

触发事件

事件的触发和回调是同步执行的。执行过程,上面有说明。

this.$emit_inst.emit(this.$emit_name.CHECK_TYPE_TWO, obj)

移除事件

直接在实例上移除事件时,使用removeAllListeners方便,因为只用传事件名。

beforeDestroy(){ this.$emit_inst.removeAllListeners(this.$emit_name.CHECK_TYPE_TWO) }

总结:

使用eventemitter2,就是正确创建实例,给实例绑定、触发和移除事件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a321801304798c40016943c3da79efa3.html