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 + el-form 实现的多层循环表单验证
Nov 25 Vue.js
Vue——前端生成二维码的示例
Dec 19 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
vue3弹出层V3Popup实例详解
Jan 04 Vue.js
用vite搭建vue3应用的实现方法
Feb 22 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
Vue3中的Refs和Ref详情
Nov 11 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
vue2的 router在使用过程中遇到的一些问题
Apr 13 Vue.js
vue css 相对路径导入问题级踩坑记录
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
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
Python线程的两种编程方式
2015/04/14 Python
python中zip()方法应用实例分析
2016/04/16 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
python计算两个数的百分比方法
2018/06/29 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
python读取几个G的csv文件方法
2019/01/07 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
Python函数和模块的使用总结
2019/05/20 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
详解Python IO口多路复用
2020/06/17 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
土木工程应届生自荐信
2013/09/24 职场文书
先进工作者获奖感言
2014/02/08 职场文书
英语教师求职信
2014/06/16 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
会计做账心得体会
2016/01/22 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技