event自定义事件
事件的注意事项
事件分为:
1、系统事件 : click、双击、鼠标事件等
2、自定义事件
不管是系统事件还是自定义事件都要注意事件源(事件是给谁绑定的)、事件的类型、事件的回调
1>系统事件
原生DOM绑定的系统事件
我们再看引入组件使用的系统事件
"handler1">
此时点击event1的时候不会触发事件
因为event1并不是原生的DOM,但是给event1绑定了原生的DOM事件click,这个click就当做是一个自定义事件
可以通过修饰符实现触发“.native”,可以把@click自定义事件变成原生的DOM事件
"handler1">
此时就可以触发
注意:
- 原生的DOM:button可以绑定系统事件,click事件等
- 组件标签:event1可以绑定系统事件,但是不起作用,因为是属于自定义事件,如果不加.native不会起到原生DOM事件的效果
- 原生DOM的click事件,其实就是给子组件的根节点绑定了点击事件,利用到了事件的委派
再看原生的DOM绑定自定义事件
这种写法是没有意义的,自定义事件需要结合$on和$emit相结合使用,如果这样写就是一个元素的DOM,并非一个组件,给原生的DOM绑定自定义事件是没有意义的,因为没办法触发$emit函数
再看event2的自定义事件
"handler2" >
Event.vue
"background: #ccc; height: 80px;">Event2组件
App.vue中的方法
handler2(event){ console.log(event,'event2事件的回调'); }
此时在绑定一个自定义事件
"handler1">
"handler2" @xxx="handler2">
Event2.vue
"background: #ccc; height: 80px;">Event2组件