这篇文章主要讲解了解决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方法的问题有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。