2-9.Vue全局API

Vue全局API

Vue中的component标签

component标签是Vue框架自定义的标签,可以动态绑定我们的组件,根据数据的不同更换不同的组件。
1.在构造器外面定义三个component组件

   var componentA={
		template:`<h1 style="color:red">这是componentA</h1>`
   }
   var componentB={
		template:`<h1 style="color:green">这是componentB</h1>`
   }
   var componentC={
		template:`<h1 style="color:blue">这是componentC</h1>`
   }

然后在构造器中声明这三个组件,在components选项里面进行挂载

      var test=new Vue({
				el:'#demo',
				data:{
					name:'componentB'
				},
				components:{
					'componentA':componentA,
					'componentB':componentB,
					'componentC':componentC
				}
		})	

现在制作一个按钮,通过点击按钮实现切换不同的组件:
绑定name数据,根据name的值不同,调用不同的组件
在changeComponent方法中,实现切换不同的component组件的功能

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>component04--component标签</title>
		<script src="../assets/js/vue.js" type="text/javascript"></script>
	</head>
	<body>
		<div id="demo">
			<component :is="name"></component>
			<button @click="changeComponent">改变Component组件</button>
		</div>
		<script type="text/javascript">
			var componentA={
				template:`<h1 style="color:red">这是componentA</h1>`
			}
			var componentB={
				template:`<h1 style="color:green">这是componentB</h1>`
			}
			var componentC={
				template:`<h1 style="color:blue">这是componentC</h1>`
			}
		    var test=new Vue({
				el:'#demo',
				data:{
					name:'componentB'
				},
				components:{
					'componentA':componentA,
					'componentB':componentB,
					'componentC':componentC
				},
				methods:{
					changeComponent:function(){
						if(this.name=="componentA"){
							this.name="componentB"
						}else if(this.name=="componentB"){
							this.name="componentC"
						}else{
							this.name="componentA"
						}
					}
				}
			})	
		</script>
	</body>
</html>

注意:利用v-bind指令绑定data里面的数据,初始化是默认选择第一个组件:componentA
运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了32 篇原创文章 · 获赞 3 · 访问量 499

猜你喜欢

转载自blog.csdn.net/weixin_43913219/article/details/104053660