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在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
8个非常实用的Vue自定义指令
Dec 15 Vue.js
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
vue3使用vue-count-to组件的实现
Dec 25 Vue.js
vue实现简易计算器功能
Jan 20 Vue.js
Vite和Vue CLI的优劣
Jan 30 Vue.js
vue脚手架项目创建步骤详解
Mar 02 Vue.js
Vue.js中v-bind指令的用法介绍
Mar 13 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
vue实现在data里引入相对路径
Jun 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
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
PHP常用处理静态操作类
2015/04/03 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
Document 对象的常用方法
2009/07/31 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
使用vue完成微信公众号网页小记(推荐)
2019/04/28 Javascript
Python键盘输入转换为列表的实例
2018/06/23 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
python实现合并两个排序的链表
2019/03/03 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
军训生自我鉴定范文
2013/12/27 职场文书
个人欠款担保书
2014/05/20 职场文书
文案策划专业自荐信
2014/07/07 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
安全守法证明
2015/06/23 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
基于Python实现一个春节倒计时脚本
2022/01/22 Python