先贴代码 var myButton = Vue.extend({//设置标签 props: ['names', 'item2'],//names为按钮名,item2为数据 template: 'spanspan v-for="obj in item2" v-if="obj.name==names" v-html="obj.code"/span/span' }) Vue.component('my-button', m
先贴代码
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方法的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。