Vue的动态组件与v-once功能介绍

26 篇文章 0 订阅
10 篇文章 0 订阅
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<title>test</title>
	</head>
	<body>
		<div id="app">
			<!-- 在这里component就是动态组件,可以进行view界面的切换 -->
			<!-- 显示child1的时候child2就被销毁了,child1创建出来,有点消耗性能 -->
			<component :is="type"></component>
			
			<!-- 当然在我下列这两行依然也可以实现切换的效果 -->
			
			<!-- <child1 v-if="type === 'child1'"></child1> -->
			<!-- <child2 v-if="type === 'child2'"></child2> -->
			<input type="button" name="" id="" value="切换" @click="clickIt"/>
		</div>
		
		<script type="text/javascript">
			// 这两个组件都加了v-once是因为v-once,当元素在页面上显示的时候,页面就会
			// 将这个元素里面得内容进行包留,下次需要的时候可以直接调用出来,可以增高性能
				// 所以v-once在vue中是可以提高静态效果的效率的
			Vue.component('child1' , {
				template:'<p v-once>我是第一个</p>'
			})
			Vue.component('child2' , {
				template:'<p v-once>我是第二个</p>'
			})
			
			
			
			var vm = new Vue({
				el:'#app',
				data:{
					type:'child1'
				},
				methods:{
					clickIt(){
						//这里是三元表达式来确定type的显示对象,如果是child1那么就该让他显示child2了
						this.type = (this.type==='child1'?'child2':'child1')
					}
				}
			})
		</script>
	</body>
</html>

具体的内容我都写在注释里了。如有错误,请指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值