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 相关文章推荐
jquery1.4.2 for Visual studio 2010 模板文件
Jul 14 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
Jun 04 Javascript
javascript图片预加载实例分析
Jul 16 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
Feb 16 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
Sep 08 Javascript
JavaScript 继承详解(六)
Oct 11 Javascript
bootstrap模态框远程示例代码分享
May 22 Javascript
老生常谈javascript的面向对象思想
Aug 22 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
Dec 14 Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 Javascript
如何用JS实现网页瀑布流布局
Apr 24 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操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
PHP多进程编程实例
2014/10/15 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
编辑浪子版表单验证类
2007/05/12 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
Python和Bash结合在一起的方法
2020/11/13 Python
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
计算机专业毕业生自荐信
2013/12/31 职场文书
给儿子的表扬信
2014/01/15 职场文书
同学聚会策划方案
2014/06/06 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
总经理岗位职责范本
2015/04/01 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
Python中for后接else的语法使用
2021/05/18 Python
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电