这里使用的是,官方文档的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,就是正确创建实例,给实例绑定、触发和移除事件。