vue 自定义的组件绑定点击事件


Posted in Vue.js onApril 21, 2022

给自定义的组件绑定点击事件

在做项目中我们往往会封装许多的组件,来减少代码的重复性,提高代码的可利用性,有时候也会给组件绑定事件,但是经常会失效。

先给cardinfo这个组件绑定一个点击事件

     <cardinfo
        :content="content"
        :from="from"
        :ProPortrait="ProPortrait"
      />

一般都是这样给点击事件,可是有时候这个事件是没用的,因为这个事件是引用组件页面的事件,而不是组件本身的事件,所以组件内不能识别这个事件的来源。

     <cardinfo
       @click="goodclick"
        :content="content"
        :from="from"
        :ProPortrait="ProPortrait"
      />

在@click后面加native表示的是当前页面的事件

  <cardinfo
        @click.native="goodclick"
        :content="content"
        :from="from"
        :ProPortrait="ProPortrait"
      />

给自定义组件添加单击事件

自己定义了一个按钮按组件

<template>
  <div>
     <div class="endBtn">
       <van-button type="danger" block color="linear-gradient( to left ,#F24B0B, #FF4A44 )">{{btnMsg}}</van-button>
    </div>
  </div>
</template>
<script>
export default {
  name: 'UiEndbutton',
  props:["btnMsg"],
  data() {
    return {
      
    };
  },
  mounted() {
    
  },
  methods: {
    
  },
};
</script>
<style lang="stylus" scoped>
   .endBtn
      width: 345px
      height: 44px
      border-radius: 4px
      background: radial-gradient(#F24B0B  100%,#FF4A44   100%);
      margin-top: 15px
      margin-left: 15px
</style>

在其他的页面引用这个组件

引入

import EndButton from '@/components/EndButton.vue';
export default {
  name: 'UiEndyuyuetransfer',
   components:{
     PageTop,
      YuyueDetailItem,
      EndButton,
   },
   methods:{
   toEndYuyueTransferResult(){
   this.$router.push({name:"EndYuyueTransferResult"})
   }
   }
}

在页面中

<end-button btnMsg="终止" @click="toEndYuyueTransferResult"></end-button>

点击按钮你会发现,方法没有被触发。

给vue组件绑定事件时候,必须加上native ,否则会认为监听的是来自Item组件自定义的事件。

<end-button btnMsg="终止" @click.native="toEndYuyueTransferResult"></end-button>
Vue.js 相关文章推荐
vue在图片上传的时候压缩图片
Nov 18 Vue.js
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
Vue组件简易模拟实现购物车
Dec 21 Vue.js
vue中watch的用法汇总
Dec 28 Vue.js
vue自定义组件实现双向绑定
Jan 13 Vue.js
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
vue组件vue-esign实现电子签名
Apr 21 #Vue.js
vue动态绑定style样式
Apr 20 #Vue.js
Vue OpenLayer测距功能的实现
vue 给数组添加新对象并赋值
Apr 20 #Vue.js
vue 数字翻牌器动态加载数据
Apr 20 #Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 #Vue.js
vue封装数字翻牌器
Apr 20 #Vue.js
You might like
用php+mysql一个名片库程序
2006/10/09 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
vue.js中created方法作用
2018/03/30 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
自己使用总结Python程序代码片段
2015/06/02 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
介绍一下gcc特性
2012/01/20 面试题
鲜花方阵解说词
2014/02/13 职场文书
推荐信模板
2014/05/09 职场文书
导游词范文
2015/02/13 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书