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 25 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
Vue组件简易模拟实现购物车
Dec 21 Vue.js
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
Vue3中的Refs和Ref详情
Nov 11 Vue.js
Vue全局事件总线你了解吗
Feb 24 Vue.js
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
vue自定义右键菜单之全局实现
Apr 09 Vue.js
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
vue 给数组添加新对象并赋值
Apr 20 Vue.js
vue postcss-px2rem 自适应布局
May 15 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
mysql时区问题
2008/03/26 PHP
开源SNS系统-ThinkSNS
2008/05/18 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
javascript深入理解js闭包
2010/07/03 Javascript
JavaScript 图像动画的小demo
2012/05/23 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
python 性能优化方法小结
2017/03/31 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
python日志模块logbook使用方法
2019/09/19 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
pandas数据拼接的实现示例
2020/04/16 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
委托代理人授权委托书范本
2014/09/24 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
电视新闻稿
2015/07/17 职场文书
《月光曲》教学反思
2016/02/16 职场文书
车辆挂靠协议书
2016/03/23 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle