原因:父组件写的点击事件,点击按钮,打印hi。但是实际上子组件中是一个<div><button></button></div>的形式。这样点击div也会出发点击事件。
实际上这个点击事件是作用在子组件的div上的,那么我们想法是作用在子组件的button上。
1.继承属性设置为false
此时事件不会被绑定在任何一个元素上面。
2.在你想绑定的元素上,绑定 $attrs
这是什么意思?默认这个元素将继承父组件中写的所有的属性。使用v-bind!。也就是说,button继承了所有父组件中Button的属性。
为什么是 v-bind="$attrs" ?
因为vbind可以直接绑定一个有属性的对象! 这边其实是 $attrs{ 属性1: value,属性2: value,属性3: value }
问题来了,是不是可以得到部分属性?
可以使用上下文,context.attrs 切记要return,不然无法使用!!!!!!!
ES6的简易写法,使用拓展操作符。