Vue的自定义组件不能使用click方法的解决


Posted in Javascript onJuly 28, 2020

先贴代码

var myButton = Vue.extend({//设置标签
    props: ['names', 'item2'],//names为按钮名,item2为数据
    template: '<span><span v-for="obj in item2" v-if="obj.name==names" v-html="obj.code"></span></span>'
  })
  Vue.component('my-button', myButton);//注册组件

这是上篇博客的自定义按钮权限的代码,然后调用代码:

<my-button names="修改" v-bind:item2="btdata"></my-button>

当你在这个标签上加@click事件的时候报错,原因是因为没有加上native,官网对于native的解释为:

.native - 监听组件根元素的原生事件。

正确的代码为:

<my-button @click.native="alert1()" names="删除" v-bind:item2="btdata"></my-button>

这样就能成功在自定义标签上绑定事件了

补充知识:Vue中利用component切换组件

我就废话不多说了,大家还是直接看代码吧~

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="vue.js"></script>
</head>
<body>
  <div id="app">
    <a href="#" rel="external nofollow" rel="external nofollow" @click="componentName='mycom1'">组件1</a>
    <a href="#" rel="external nofollow" rel="external nofollow" @click="componentName='mycom2'">组件2</a>
    <component :is="componentName"></component>
  </div>
</body>
<script>
 
  Vue.component('mycom1',{
    //注意无论是哪种方式创建组件,template都只能有一个唯一的根元素
    template: '<h3>组件1</h3>',//指定组件要展示的html结构
  })
 
  Vue.component('mycom2',{
    //注意无论是哪种方式创建组件,template都只能有一个唯一的根元素
    template: '<h3>组件2</h3>',//指定组件要展示的html结构
  })
 
  //创建一个vue实例
  //当我们导入包之后,在浏览器的内存中就多了一个vue构造函数
  var vm = new Vue({
    el: '#app',//表示当前我们new的这个vue实例要控制页面上的哪个区域
    data: { //data属性中存放的是el中要用到的数据
      componentName: 'mycom1'
    }
  });
  
</script>
</html>

以上这篇Vue的自定义组件不能使用click方法的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
删除重复数据的算法
Nov 23 Javascript
JQuery AJAX实现目录浏览与编辑的代码
Oct 21 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
May 28 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
javascript自定义的addClass()方法
May 28 Javascript
AngularJS ng-bind 指令简单实现
Jul 30 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
Mar 04 Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
解决antd的Form组件setFieldsValue的警告问题
Oct 29 Javascript
canvas多重阴影发光效果实现
Apr 20 Javascript
浅谈JavaScript中this的指向问题
Jul 28 #Javascript
浅谈JavaScript中this的指向更改
Jul 28 #Javascript
Postman内建变量常用方法实例解析
Jul 28 #Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
Jul 28 #Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
Jul 28 #Javascript
解决vue bus.$emit触发第一次$on监听不到问题
Jul 28 #Javascript
vue+element-ui JYAdmin后台管理系统模板解析
Jul 28 #Javascript
You might like
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
php实现的http请求封装示例
2016/11/08 PHP
php实现微信扫码支付
2017/03/26 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
取得传值的函数
2006/10/27 Javascript
为javascript添加String.Format方法
2020/08/11 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
js中url对象化管理分析
2017/12/29 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
python 远程统计文件代码分享
2015/05/14 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
小学社会实践活动总结
2014/07/03 职场文书
德育标兵事迹材料
2014/08/24 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android