自定义组件的坑

99 阅读1分钟

工作场景

参考

在一个引入的组件A中需要绑定该组件A的click等事件的时候:

my-radio组件是类似于elementui的el-radio,内部带有label和input等标签组成的。

刚开始这样直接绑定方法-----绑定的事件无效

<my-radio @click="clickRadio">
解决:
<my-radio @click.native="clickRadio">
可能会引入的新的问题

绑定的.native可能会触发两次绑定的事件,例如elementui的el-radio的组件就会,因el-radio中的label中嵌套input,而方法会绑定在input上,就会产生冒泡反应,所以会触发两次效果。 解决:(传递event这个参数的时候必须写为$event,特别传递的参数不是唯一的时候)

<my-radio @click.native="clickRadio($event)">

clickRadio(ele){
    if (el.target.tagName == 'INPUT') return
    console.log(value)
}

网上建议的写法为:

@click.native.stop="changeData7($event,item.value)"