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操作input type=radio的实现代码
Jun 14 Javascript
JS日期和时间选择控件升级版(自写)
Aug 02 Javascript
jquery解析XML及获取XML节点名称的实现代码
May 18 Javascript
JavaScript制作弹出层效果
Dec 02 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
Dec 07 Javascript
AngularJS基于factory创建自定义服务的方法详解
May 25 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
Nov 30 Javascript
面试题:react和vue的区别分析
Apr 08 Javascript
js消除图片小游戏代码
Dec 11 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
Mar 10 Javascript
原生JS实现九宫格抽奖
Sep 13 Javascript
JS跨浏览器解析XML应用过程详解
Oct 16 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+DBM的同学录程序(5)
2006/10/09 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
vue中使用vee-validator完成表单校验方案
2019/11/01 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
Python编程argparse入门浅析
2018/02/07 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
详解python中的线程与线程池
2019/05/10 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
艺术设计专业个人求职信
2013/09/21 职场文书
网络专业学生个人的自我评价
2013/12/16 职场文书
模范教师事迹材料
2014/02/10 职场文书
2014年测量员工作总结
2014/12/12 职场文书
幼儿园开学报名通知
2015/07/16 职场文书