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 相关文章推荐
javascript 类定义的4种方法
Sep 12 Javascript
基于mootools 1.3框架下的图片滑动效果代码
Apr 22 Javascript
Javascript 实现图片无缝滚动
Dec 19 Javascript
使用VS开发 Node.js指南
Jan 06 Javascript
jQuery实现获取绑定自定义事件元素的方法
Dec 02 Javascript
js 弹出虚拟键盘修改密码的简单实例
Oct 10 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
JavaScript设计模式之单例模式详解
Jun 09 Javascript
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
JS实现碰撞检测的方法分析
Jan 19 Javascript
JS+HTML5 canvas绘制验证码示例
Dec 05 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 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安装全攻略:APACHE
2006/10/09 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
js实现日历的简单算法
2017/01/24 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
python中pdb模块实例用法
2021/01/15 Python
Python爬取梨视频的示例
2021/01/29 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
门卫岗位安全职责
2013/12/13 职场文书
优秀员工推荐信
2014/05/10 职场文书
质量负责人任命书
2014/06/06 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
质检员岗位职责
2015/02/03 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
Redis数据结构之链表与字典的使用
2021/05/11 Redis
在python中实现导入一个需要传参的模块
2021/05/12 Python
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫