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 相关文章推荐
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
Dec 08 Javascript
拖拉表格的JS函数
Nov 20 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
JavaScript中setInterval的用法总结
Nov 20 Javascript
JS控制网页动态生成任意行列数表格的方法
Mar 09 Javascript
浅谈javascript原型链与继承
Jul 13 Javascript
直接拿来用的15个jQuery代码片段
Sep 23 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 Javascript
js的对象与函数详解
Jan 21 Javascript
详解js 创建对象的几种方法
Mar 08 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
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
微信小程序开发探究
2016/12/27 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
详解实现vue的数据响应式原理
2021/01/20 Vue.js
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
[01:31]完美与DOTA2历程
2014/07/31 DOTA
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
NFL官方在线商店:NFLShop
2020/07/29 全球购物
工程招投标邀请书
2014/01/26 职场文书
犯错检讨书
2014/02/21 职场文书
计算机软件专业求职信
2014/06/10 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
2015新学期家长寄语
2015/02/26 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang