Vue 中给组件绑定原生事件

栏目: JavaScript · 发布时间: 7年前

内容简介:当我给一个组件绑定一个事件的时候,实际上这个事件绑定的是自定义的事件,也就是你真正的鼠标点击触发的事件,并不是我绑定的在元素上绑定的事件,监听的是原生事件,在组件上绑定的事件,监听的是自定义事件,需要用在开发的过程中这样写有点太麻烦,假如我有这样的需求,我就想在子组件上监听原生的事件,该怎么做呢?

绑定原生事件

<div id="root">
    <child @click="handleClick"></child>
</div>
Vue.component('child',{
    template:'<div @click="handleChildClick">content</div>',
    methods: {
        handleChildClick(){
            alert('click child')
            this.$emit('click')
        }
    }
})
let vm = new Vue({
    el: '#root',
    methods: {
        handleClick(){
            alert('click')
        }
    }
})

当我给一个组件绑定一个事件的时候,实际上这个事件绑定的是自定义的事件,也就是你真正的鼠标点击触发的事件,并不是我绑定的 click 事件,如果想触发自定义的 click 事件,在子组件里对元素进行事件绑定,这个事件才是真正的原生事件。

在元素上绑定的事件,监听的是原生事件,在组件上绑定的事件,监听的是自定义事件,需要用 this.$emit() 来触发。

在开发的过程中这样写有点太麻烦,假如我有这样的需求,我就想在子组件上监听原生的事件,该怎么做呢?

<div id="root">
    <child @click.native="handleClick"></child> //native 是事件修饰符
</div>
Vue.component('child',{
    template:'<div>content</div>',
})
let vm = new Vue({
    el: '#root',
    methods: {
        handleClick(){
            alert('click')
        }
    }
})

这个时候,在组件上面做事件的监听,并不是自定义事件,而是一个原生的 click 事件,只要在事件绑定的后面加上一个 native 这样的事件修饰符就可以了。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解并行编程

深入理解并行编程

[美] Paul E.Mckenney(保罗·E·麦肯尼) / 谢宝友 鲁阳 / 电子工业出版社 / 2017-7-1 / 129

《深入理解并行编程》首先以霍金提出的两个理论物理限制为引子,解释了多核并行计算兴起的原因,并从硬件的角度阐述并行编程的难题。接着,《深入理解并行编程》以常见的计数器为例,探讨其不同的实现方法及适用场景。在这些实现方法中,除了介绍常见的锁以外,《深入理解并行编程》还重点介绍了RCU的使用及其原理,以及实现RCU的基础:内存屏障。最后,《深入理解并行编程》还介绍了并行软件的验证,以及并行实时计算等内容......一起来看看 《深入理解并行编程》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具