native修饰符

一般来说,vue本身提供了v-on:eventName这个语法来提供vue的时事件绑定,通常使用@eventName这个语法糖代替上述语法。

使用过程中没有考虑@eventName作用标签的类型,因为一般将该语法用在html原生标签,在组件标签上使用的时候,出现了@click="handler"无法触发handler事件。

以下为事故现场:

<my-component @click="handler"><my-component/>

使用该组件的vue实例

注:handler( )为ES6语法,等同于handler:function( )

    methods:{
handler(){
console.log('click me');
}
}

经过面向搜索编程(百度)

发现默认@eventName使用在组件上是表示绑定了组件自定义eventName

要绑定原生DOM事件,需要使用.native来修饰@eventName,即 @eventName.native 语法

那么自定义事件又是怎么一肥事呢?

一般来说,自定义事件用于Vue自定义组件,用于内部DOM元素事件响应时,开放给组件外部的API。

specially,他需要组件内部使用$emit('defineEventName',value)这个方法来触发,这也表明了一开始我的错误想法,以为是触发组件内部的原生DOM的click方法,这里指明了使用@evnetName作用在组件上,不会触发原生DOM事件,即一开始的无反应。

这里完成了一个@click="handler",而不是用native修饰符的例子,基于Vue自定义事件

my-component组件内部实现

    <template>
<button @click="in">click me</button>
</template>
    methods:{
in(){
this.$emit('click')
}
}

这个例子在点击按钮click me之后能够通过$emit('click')触发组件自定义的click事件以调用使用该组件上的Vue实例上的handler方法,打印出click me。

在组件上想要触发@click事件,组件内部需要有一个可以触发原生click事件的元素,并且这个原生click事件绑定一个用于提交emit('click')到组件上的@click函数

Vue中的native修饰符解析的更多相关文章

  1. vue中的.native修饰符

    如果你想在某个组件的根元素上绑定事件,直接使用 @click=''function' 是不生效的,我们可以添加.native修饰符 @click.native=''function'',请看以下dem ...

  2. vue中的.passive修饰符

    一.passive作用 详情请参考MDN(https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener)中 ...

  3. vue.js实战——.native修饰符

    https://blog.csdn.net/qq_29468573/article/details/80771625 除了用v-on在组件上监听自定义事件外,也可以监听DOM事件,这时可以用.nati ...

  4. vue中的事件修饰符

    vue提倡的是在方法中只有对数据的处理,所以提供了事件修饰符用于DOM的事件处理,常用的事件修饰符有以下几个: (1). stop:阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递) 点击内层div的 ...

  5. 怎样在 Vue 中使用 事件修饰符 ?

    Vue 中可以通过 v-on 来绑定事件监听函数, 不过事件会有许多额外情况, 比如 是否阻止冒泡 / 是否阻止重载 / 是否限制点击次数 / 是否可以通过按键触发 等等. 这时就需要使用到 事件修饰 ...

  6. vue中的.sync修饰符用法

    在项目中接触到父组件传值给子组件的时候,想在子组件改变父组件传的值.(比如用于弹窗关闭) 但是正常来说,vue2是不允许子组件直接改父组件传进去的值的. 所以我们需要在子组件内定义自定义事件,通知父组 ...

  7. 030——VUE中鼠标语义修饰符

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 029——VUE中键盘语义修饰符

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. (二)咋使用VUE中的事件修饰符

    1,stop修饰符:阻止事件冒泡 首先我们要明确H5的事件是从内向外进行冒泡的,写一个简单的DEMO 当我们点击按钮时,事件从内向外冒泡,依次触发绑定的事件,控制台信息如下 现在我们在click后面添 ...

随机推荐

  1. quota - linux磁盘配额管理

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  2. 【转载】C#通过Clone方法快速创建相同架构的DataTable

    在C#中的Datatable数据变量的操作过程中,如果需要克隆当前DataTable变量的结构,包括所有 DataTable 架构和约束等信息,可以使用DataTable中的Clone方法来实现,Cl ...

  3. vs2017 添加 mysql EF实体数据模型闪退

    1.查看vs2017安装路径找到Mysql.Data.dll版本号与MySQL Connector Net版本是否一致 历史版本下载地址 http://mysql.inspire.net.nz/Dow ...

  4. 面试题:什么叫B树

    B是balanced的意思 是在二叉查找树  树的基础上增加了平衡的性质   导致它不是  二叉树了,变成了多叉树,但是叉几路又有了限制  否则怎么平衡呢 一棵m阶B树(balanced tree o ...

  5. OCR5:预处理

    Tesseract4.X已经有了初步成效(见下面的对比), 但目前结果对于训练之外的数据, 仍会有很大的偏差.想要更好的 OCR 结果, README 中重点强调的一点是: 在交给 Tesseract ...

  6. Python小练习:批量删除多个文件夹内的相同文件

    应用场景: 下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除该文件 使用环境:win7,python3.6 代码: 1.直接用for循环 由于os.walk()方法自带 ...

  7. ARM处理器基础知识

    1.ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 http://blog.chinaunix.net/uid-28458801-id-3494646.html 2.ARM的7种工作模式. ...

  8. Pytorch数据读取详解

    原文:http://studyai.com/article/11efc2bf#%E9%87%87%E6%A0%B7%E5%99%A8%20Sampler%20&%20BatchSampler ...

  9. springboot ResponseEntity<byte[]> 下载文件 byte 都变成base64

    因为spring boot消息转换器 ,全部将数据转换为json格式,包括文件的byte数据 关于spring boot 的消息转换器见:https://www.jianshu.com/p/ffe56 ...

  10. C++ - STL - map的基础操作

    STL - map常用方法 map简述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,其作用类似于 ...