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 相关文章推荐
基于jquery的模态div层弹出效果
Aug 21 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
Sep 14 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
动态加载js的方法汇总
Feb 13 Javascript
js控制TR的显示隐藏
Mar 04 Javascript
jQuery实现的跨容器无缝拖动效果代码
Jun 21 Javascript
js实现自动轮换选项卡
Jan 13 Javascript
JS中实现函数return多个返回值的实例
Feb 21 Javascript
使用vue中的v-for遍历二维数组的方法
Mar 07 Javascript
node基于puppeteer模拟登录抓取页面的实现
May 09 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
May 23 Javascript
利用uni-app生成微信小程序的踩坑记录
Apr 05 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 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python实现人脸签到系统
2020/04/13 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
服务员岗位职责
2014/01/29 职场文书
初三学习决心书
2014/03/11 职场文书
护士感人事迹
2014/05/01 职场文书
防灾减灾日活动总结
2014/08/26 职场文书
小兵张嘎观后感
2015/06/03 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android