这篇文章主要讲解了解决Vue的自定义组件不能使用click方法的问题,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
先贴代码
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: '<h4>组件1</h4>',//指定组件要展示的html结构 }) Vue.component('mycom2',{ //注意无论是哪种方式创建组件,template都只能有一个唯一的根元素 template: '<h4>组件2</h4>',//指定组件要展示的html结构 }) //创建一个vue实例 //当我们导入包之后,在浏览器的内存中就多了一个vue构造函数 var vm = new Vue({ el: '#app',//表示当前我们new的这个vue实例要控制页面上的哪个区域 data: { //data属性中存放的是el中要用到的数据 componentName: 'mycom1' } }); </script> </html>
看完上述内容,是不是对解决Vue的自定义组件不能使用click方法的问题有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。