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 数组操作代码集锦
Apr 28 Javascript
jQuery中scrollTop()方法用法实例
Jan 16 Javascript
javascript判断变量是否有值的方法
Apr 20 Javascript
jQuery取消ajax请求的方法
Jun 09 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
May 19 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
js评分组件使用详解
Jun 06 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
Jul 12 Javascript
vue生成token保存在客户端localStorage中的方法
Oct 25 Javascript
JavaScript时间戳与时间日期间相互转换
Dec 11 Javascript
vue的传参方式汇总和router使用技巧
May 22 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
Apr 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
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
PHP经典面试题集锦
2015/03/19 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
Django中提示消息messages的设置方式
2019/11/15 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
序列化Python对象的方法
2020/08/01 Python
恶意软件的定义
2014/11/12 面试题
英语文学专业学生的自我评价
2013/10/31 职场文书
毕业生的自我评价
2013/12/30 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
六五普法宣传标语
2014/10/06 职场文书
领导干部作风建设总结
2014/10/23 职场文书
2014年信访工作总结
2014/11/17 职场文书
党建工作汇报材料
2014/12/24 职场文书
音乐课外活动总结
2015/05/09 职场文书
2015入党自传书范文
2015/06/26 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书