Vue2--条件渲染

299 阅读1分钟

条件渲染

1、v-if

(1)用法

v-if = "表达式"
v-else-if = "表达式"
v-else = "表达式"

(2)适用于:切换频率较低的场景

(3)特点:不展示的DOM元素直接被移除

(4)注意v-if可以和:v-else-if、v-else一起使用,但要求结构不能被“打断”

2、v-show

(1)用法

v-show = "表达式"

(2)适用于:切换频率较高的场景

(3)特点:不展示DOM元素未被移除,仅仅是使用样式隐藏了

3、备注:使用v-if时,元素可能无法获取到,而使用v-show一定可以获取到。

案例:(注意v-if可以和template配和使用,而且template不影响结构)

        <body>
		<!--准备好一个容器-->
		<div id="root">
			<!--使用v-show做条件渲染,如果隐藏还能看到结构-->
			<h2 v-show="a">欢迎来到{{name}}</h2>
			
			<br />
			<!--使用v-if做条件渲染,如果隐藏不能看到结构-->
			<h2 v-if="a">欢迎来到{{name}}</h2>
			
			<br />
			
			<button @click="n++">点我n+1</button>
			<!--v-if与template的配合使用-->
			<template v-if="n === 1">
				<h2>Hello</h2>
				<h2>Hi</h2>
				<h2>hahaha</h2>
			</template>
			
			<!--如果使用div不使用template会在一开始n 不等于时就出现。-->
			<!-- <div v-if="n === 1">
				<h2>Hello</h2>
				<h2>Hi</h2>
				<h2>hahaha</h2>
			</div> -->
			
		</div>
	</body>
	
	<script type="text/javascript">
		const vm = new Vue({
			el:'#root',
			data:{
				name:"尚硅谷",
				a:true,
				n:0,
			},
		})
	</script>