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+element实现动态加载表单
Dec 13 Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
Vue组件简易模拟实现购物车
Dec 21 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
vue watch监控对象的简单方法示例
Jan 07 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
浅谈Vue的computed计算属性
Mar 21 Vue.js
vue判断按钮是否可以点击
Apr 09 Vue.js
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
vue 数字翻牌器动态加载数据
Apr 20 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在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
python控制台显示时钟的示例
2014/02/24 Python
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
Python打印输出数组中全部元素
2018/03/13 Python
Python单元测试简单示例
2018/07/03 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
python实现微信打飞机游戏
2020/03/24 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
params有什么用
2016/03/01 面试题
毕业生多媒体设计求职信
2013/10/12 职场文书
建设投标担保书
2014/05/13 职场文书
中秋晚会策划方案
2014/06/12 职场文书
个人授权委托书模板
2014/09/14 职场文书
出生医学证明书
2014/09/15 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
学校运动会广播稿
2014/10/11 职场文书
晚会开场白和结束语
2015/05/29 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技