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 简短右键菜单 多浏览器兼容
Jan 01 Javascript
关于JavaScript中的关联数组分析
Apr 09 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
Sep 09 Javascript
jQuery表单域选择器用法分析
Feb 10 Javascript
jQuery实现的仿select功能代码
Aug 19 Javascript
学习JavaScript鼠标响应事件
Dec 25 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
javascript实现日期三级联动下拉框选择菜单
Dec 03 Javascript
关于vue-router的那些事儿
May 23 Javascript
js动态设置select下拉菜单的默认选中项实例
Aug 21 Javascript
解决ele ui 表格表头太长问题的实现
Nov 13 Javascript
vue 通过base64实现图片下载功能
Dec 19 Vue.js
浅谈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数据加密详解
2013/06/18 PHP
JS自动缩小超出大小的图片
2012/10/12 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python urlopen 使用小示例
2008/09/06 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
代码分析Python地图坐标转换
2018/02/08 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Python实现AI换脸功能
2020/04/10 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
会计系毕业个人自荐信格式
2013/09/23 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
会议邀请函
2015/01/30 职场文书
军训通讯稿范文
2015/07/18 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers
世界十大狙击步枪排行榜
2022/03/20 杂记