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-calendar-component 封装多日期选择组件的实例代码
Dec 04 Vue.js
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
详解Vue的七种传值方式
Feb 08 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
Vue vee-validate插件的简单使用
Jun 22 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
vue数据字典取键值项目的字典问题
Apr 12 Vue.js
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
Vue2项目中对百度地图的封装使用详解
Jun 16 Vue.js
Vue深入理解插槽slot的使用
Aug 05 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 Squid中可缓存的动态网页设计
2008/09/17 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
javascript验证身份证号
2015/03/03 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
python实现求最长回文子串长度
2018/01/22 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
Oracle的内存结构(Memory structures)
2015/06/10 面试题
企业领导班子四风对照检查材料
2014/09/27 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
团队拓展训练心得体会
2016/01/12 职场文书