• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >vue > 详解Vue2.0之去掉组件click事件的native修饰

详解Vue2.0之去掉组件click事件的native修饰

作者:烈风裘 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含vue2.0 click,vue2.0,vue2.0中文文档,vue2.0教程,vue2.0官网等相关知识,烈风裘 希望在学习及工作中可以帮助到您

这个是在组件开发中遇到的问题,当时我在编写button的组件,模板是这样的:

<template>
 <button class="disable-hover button ion-button"
     :class="[modeClass,typeClass,shapeClass,sizeClass,colorClass,roleClass,strongClass]">
  <span class="button-inner">
   <slot></slot>
  </span>
  <div class="button-effect"></div>
 </button>
</template>
</div>

使用是这样子的:

<ion-button @click.native="primary()" color="primary">primary</ion-button>
</div>

根据Vue2.0官方文档关于父子组件通讯的原则,父组件通过prop传递数据给子组件,子组件触发事件给父组件。但父组件想在子组件上监听自己的click的话,需要加上native修饰符,故写法就像上面这样。

好吧,处女座的毛病又来了。像button这样常用的组件如果加上native的话是感觉很突兀的。虽然组件设计有自身的考虑,因此我想将click的native去掉,思路如下:

  1. 子组件监听父组件给的click事件,
  2. 子组件内部处理click事件然后向外发送click事件:$emit("click".fn)

改造后的代码如下(亲测可用):

<template>
 <button class="disable-hover button ion-button" @click="_click"
     :class="[modeClass,typeClass,shapeClass,sizeClass,colorClass,roleClass,strongClass]">
  <span class="button-inner">
   <slot></slot>
  </span>
  <div class="button-effect"></div>
 </button>
</template>

<script type="text/babel">
export default{
  ....
  ....
  methods: {
   _click: function () {
    this.$emit('click', function () {
     alert('inner')
    })
   }
  }
}
</script>
</div>

父组件中这样使用:

<ion-button @click="primary()" color="primary">primary</ion-button>
</div>

也许读者能看出来,我正在参照IONIC2.X的组件API写Vue2.0的功能组件,目前只完成了:ActionSheet、Button、Icon、Alert、Toast这几个,一边看IONIC源码,一边将思路总结写成Vue代码,也就是花点时间。积累自己的组件库希望以后能开发快点。

现在项目地址在这里,前期以实现功能为主,不建议用在生产环境,读读代码实现思路就好,中文备注都做好了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>

您可能想查找下面的文章:

  • 详解Vue2.0之去掉组件click事件的native修饰

相关文章

  • 2017-05-30vue学习笔记之指令v-text && v-html && v-bind详解
  • 2017-05-30Vue键盘事件用法总结
  • 2017-05-30Vue.js实现无限加载与分页功能开发
  • 2017-05-30利用Vue.js框架实现火车票查询系统(附源码)
  • 2017-05-30分分钟玩转Vue.js组件
  • 2017-05-30基于vuejs实现一个todolist项目
  • 2017-05-30Vue.js第四天学习笔记
  • 2017-05-30Vue组件开发初探
  • 2017-05-30Vue + Webpack + Vue-loader学习教程之相关配置篇
  • 2017-05-30Vue.js——60分钟快速入门

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • vuejs响应用户事件(如点击事件)
    • vue2.0实战之使用vue-cli搭建项目(2)
    • 详解Vuejs2.0之异步跨域请求
    • Vue 2.0 服务端渲染入门介绍
    • Vuex2.0+Vue2.0构建备忘录应用实践
    • 利用vue.js插入dom节点的方法
    • 从0开始学Vue
    • Vue.js 父子组件通讯开发实例
    • 利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
    • 详解Vue2 无限级分类(添加,删除,修改)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有