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函数

最新文章

  1. javascript变量
  2. 如何在编译Xcode-Plugin工程的时候增加Cocoapods依赖
  3. mysql性能调优与架构设计(一)商业需求与系统架构对性能的影响
  4. Spark MLlib KMeans 聚类算法
  5. Golang 入门系列(九) 如何读取YAML,JSON,INI等配置文件
  6. js设置radio单选框值选中
  7. 视觉机器学习------KNN学习
  8. 趁webpack5还没出,先升级成webpack4吧
  9. css重难点笔记
  10. java中反向转义org.apache.commons.lang3.StringEscapeUtils.unescapeJava
  11. dubbo支持的注册中心
  12. 在Ubuntu Desktop中安装软件
  13. 2015年传智播客JavaEE 第168期就业班视频教程16-框架结构测试(加载全spring配置文件)+struts2属性驱动测试
  14. 2nd 燃尽图
  15. bzoj1061-[Noi2008]志愿者招募-单纯形 &amp; 费用流
  16. 双向数据绑定实现之Object.defineProperty
  17. 加密web.config中的邮件配置mailSettings
  18. JavaScript delete用法,属性,特性,执行上下文,激活对象 综合篇
  19. Ubuntu16.04安装Pytorch
  20. MAC信息摘要

热门文章

  1. SQL Server中如何把 科学记数法字符串 变为 数字字符串
  2. B/S架构详解
  3. Web应用调用.Net Core API
  4. rsync 排除指定目录
  5. Map作为缓存使用
  6. Java之路---Day18(List集合)
  7. django子应用
  8. 【转载】C#的DataTable类Clone及Copy方法的区别
  9. 禁用浏览器自动给input填充账号和密码
  10. js之预解析