给组件绑定原生事件:.native
1、在组件标签上绑定的事件是自定义事件,在组件模板里绑定的事件才是原生的事件。(自定义事件可以通过在子组件中通过this.$emit去触发,但是这样太麻烦)
<div id="root">
<!-- 监听自定义事件 -->
<child @click="handleClick"></child>
</div>
<script>
Vue.component('child',{
//元素上绑定的是监听原生事件
template:'<div @click="handlechildClick">child</div>',
methods:{
handlechildClick:function(){
// 子组件想触发父组件的监听事件,
// 方法一、通过$this.$emit,缺点:步骤复杂
this.$emit('click')
}
}
})
var vm = new Vue({
el:'#root',
methods:{
handleClick:function(){
alert('已触发父组件监听')//子组件通过$emit绑定后,可以出发父组件的监听
}
}
})
</script>
2、给组件标签上的事件添加‘.native’修饰符,就可以使事件变为原生点击事件而不再是自定义事件。
<div id="root">
<!-- 方法二:后面加.native,可以给组件绑定原生事件 -->
<child @click.native="handleClick"></child>
</div>