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自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
详解Vue的异步更新实现原理
Dec 22 Vue.js
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 Vue.js
聊聊vue 中的v-on参数问题
Jan 29 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
vue的项目如何打包上线
Apr 13 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之第十天
2006/10/09 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
php实现cookie加密的方法
2015/03/10 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
python中的set实现不重复的排序原理
2018/01/24 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
Python列表(List)知识点总结
2019/02/18 Python
python支持多继承吗
2020/06/19 Python
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
个人简历自荐信
2013/12/05 职场文书
运动会解说词100字
2014/01/31 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
于丹论语心得观后感
2015/06/15 职场文书
工作会议简报
2015/07/20 职场文书
开业典礼致辞
2015/07/29 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android