自定义事件:区别于已经写好的内置事件给html使用,自定义事件给组件使用。
组件的原生事件:
例如:@click.native=""
就会将click事件给与组件的最外层的<div></div>
父给子:父给子定义 :item="todoObj" 属性,子直接拿着item.?使用就可以了
组件的自定义事件:子给父传递数据 (子给父):父组件有子组件的组件标签,写上自定义事件才能完成操作。
1.props
父组件中定义函数,传给子组件,子组件调用函数传递参数
2.@zdysj或者v-on:zdysj 给子组件绑定事件,然他自己调用
在父组件中的子组件上绑定自定义事件和回调函数
父组件上的子组件绑定:@zdysj="showName" 自定义事件
和函数 showName(value) {
console.log(value);
}
在子组件中通过this.$emit('zdysj', this.item.title) 调用函数,传入实参
3.ref="zdysj"
ref="myItme"
mounted() {
//拿到MyItem的vc实例,在zdysj被触发的时候调用showName
this.$refs.myItme[?].$on('zdysj', this.showName) // 多次
this.$refs.myItme[?].$once('zdysj', this.showName) // 一次
console.log(this.$refs.myItme);
}
子组件触发事件:
this.$emit('zdysj', this.item.title)
4.解绑自定义事件,谁调用,谁解绑
offShow() {
//解绑一个自定义事件
// this.$off('zdysj')
//解绑所有自定义事件
this.$off()
}