自定义事件

82 阅读1分钟

自定义事件:区别于已经写好的内置事件给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()
            }