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.TreeView结合ASP.Net和数据库生成菜单导航条
Aug 27 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
May 14 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
Aug 21 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
微信小程序实战之运维小项目
Jan 17 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 Javascript
基于vue.js无缝滚动效果
Jan 25 Javascript
基于vue1和vue2获取dom元素的方法
Mar 17 Javascript
JavaScript 中的 this 工作原理
Jun 20 Javascript
js实现3D照片墙效果
Oct 28 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 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 session 存储方式的详细介绍
2013/06/25 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
express 项目分层实践详解
2018/12/10 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
python输出指定月份日历的方法
2015/04/23 Python
python迭代dict的key和value的方法
2018/07/06 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
python实现简单图片物体标注工具
2019/03/18 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
2015年超市收银员工作总结
2015/04/25 职场文书
学术研讨会主持词
2015/07/04 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记
Python绘制散乱的点构成的图的方法
2022/04/21 Python
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技