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中利用three.js实现全景图的完整示例
Dec 07 Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
Vue中使用wangeditor富文本编辑的问题
Feb 07 Vue.js
Vue基本指令实例图文讲解
Feb 25 Vue.js
vue 使用饿了么UI仿写teambition的筛选功能
Mar 01 Vue.js
vue前端工程的搭建
Mar 31 Vue.js
vue组件的路由高亮问题解决方法
May 11 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
VUE中的v-if与v-show区别介绍
Mar 13 Vue.js
vue实现书本翻页动画效果实例详解
Apr 08 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过滤危险html代码
2008/08/18 PHP
php强制下载类型的实现代码
2011/04/21 PHP
php学习笔记之基础知识
2014/11/08 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
Python编程中的异常处理教程
2015/08/21 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
python中class的定义及使用教程
2019/09/18 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
django 模型中的计算字段实例
2020/05/19 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
Ejb技术面试题
2015/04/29 面试题
人力资源经理自我评价
2014/01/04 职场文书
职工运动会感言
2014/02/07 职场文书
应聘会计求职信
2014/06/11 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
宿舍管理制度范本
2015/08/07 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
SQL 聚合、分组和排序
2021/11/11 MySQL
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python