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中defineProperty和Proxy的区别详解
Nov 30 Vue.js
Vue中强制组件重新渲染的正确方法
Jan 03 Vue.js
详解Vue2的diff算法
Jan 06 Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
Vue和Flask通信的实现
May 19 Vue.js
Vue CLI中模式与环境变量的深入详解
May 30 Vue.js
Vue图片裁剪组件实例代码
Jul 02 Vue.js
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
vue 数字翻牌器动态加载数据
Apr 20 Vue.js
VUE解决跨域问题Access to XMLHttpRequest at
May 06 Vue.js
vue实现登陆页面开发实践
May 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
MVC模式的PHP实现
2006/10/09 PHP
与文件上传有关的php配置参数总结
2013/06/14 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
ThinkPHP缓存方法S()概述
2014/06/13 PHP
初识Laravel
2014/10/30 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python用字典构建多级菜单功能
2019/07/11 Python
Django分页功能的实现代码详解
2019/07/29 Python
Gap英国官网:Gap UK
2018/07/18 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
在校学生职业规划范文
2014/01/08 职场文书
小学生打架检讨书
2014/01/26 职场文书
优秀经理事迹材料
2014/02/01 职场文书
玲玲的画教学反思
2014/02/04 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
党校学习个人总结
2015/02/15 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
sql server 累计求和实现代码
2022/02/28 SQL Server