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='https://www.haobala.com/bcjs/vue.js'></script></head><body> <div id='app'> <a href='https://www.haobala.com/bcjs/11206.html#' rel='external nofollow' rel='external nofollow' @click='componentName=’mycom1’'>组件1</a> <a href='https://www.haobala.com/bcjs/11206.html#' 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方法的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持好吧啦网。
相关文章: