天天看點

VUE指令條件渲染v-if

條件語句

v-if/v-else

<!-- 格式v-if="true/false" v-else -->

<div style="height: 100px;background: #CCC;margin: 5px;">

     <div style="font-size: 20px;">

         v1.v-else指令示例</div>

     <hr />

     <div>

         <div style="font-size: 25px;" v-if="isVisible">

              {{message0}}

         </div>

         <div style="font-size: 25px;" v-else>

              {{message1}}

         </div>

     </div>

</div>

v-else-if

<!-- 格式v-if="true/false" v-else-if="true/false" ... -->

<div style="height: 100px;background: #CCC;margin: 5px;">

     <div style="font-size: 20px;">

         v2.v-else-if指令示例</div>

     <hr />

     <div>

         <div style="font-size: 25px;" v-if="count > 10">

              {{message0}}

         </div>

         <div style="font-size: 25px;" v-else-if="count > 5">

              {{message1}}

         </div>

         <div style="font-size: 25px;" v-else-if="count > 0">

              {{message2}}

         </div>

     </div>

</div>

VUE指令v-if條件渲染

包括3種指令用法:v-if=(true/false)/v-else/v-else-if=(true/false)

v-show用法與v-if類似

v-show

 指令

v-show

 的元素始終會被渲染并保留在 DOM 中。

v-show

 隻是簡單地切換元素的 CSS 屬性 

display

v-if

vs

v-show

v-if

 是“真正”的條件渲染,因為它會確定在切換過程中條件塊内的事件監聽器和子元件适當地被銷毀和重建。

v-if

 也是惰性的:如果在初始渲染時條件為假,則什麼也不做——直到條件第一次變為真時,才會開始渲染條件塊。

相比之下,

v-show

 就簡單得多——不管初始條件是什麼,元素總是會被渲染,并且隻是簡單地基于 CSS 進行切換。

一般來說,

v-if

 有更高的切換開銷,而 

v-show

 有更高的初始渲染開銷。是以,如果需要非常頻繁地切換,則使用 

v-show

 較好;如果在運作時條件很少改變,則使用 

v-if

 較好。

//TODO

用 key 管理可複用的元素

Vue 會盡可能高效地渲染元素,通常會複用已有元素而不是從頭開始渲染。這麼做除了使 Vue變得非常快之外,還有其它一些好處。例如,如果你允許使用者在不同的登入方式之間切換。

<!DOCTYPE html>
<html style="height: 100%;">

	<head>
		<meta charset="UTF-8">
		<script type="text/javascript" src="../lib/vue.v2.5.12.js" ></script>
		<title>HelloDemo</title>
	</head>

	<body style="height: 100%;">
		<style>

		</style>
		<!-- 
			VUE指令v-if條件渲染
				包括3種指令用法:v-if=(true/false)/v-else/v-else-if=(true/false)
				v-show用法與v-if類似
			REF:
				http://www.runoob.com/vue2/vue-if.html
				https://cn.vuejs.org/v2/guide/conditional.html
		-->
		<div id="appVue">
			<!--  -->
			
			<!-- 格式v-if="true/false" v-else-if="true/false" ... -->
			<div style="height: 100px;background: #CCC;margin: 5px;">
				<div style="font-size: 20px;">
					v2.v-else-if指令示例</div>
				<hr />
				<div>
					<div style="font-size: 25px;" v-if="count > 10">
						{{message0}}
					</div>
					<div style="font-size: 25px;" v-else-if="count > 5">
						{{message1}}
					</div>	
					<div style="font-size: 25px;" v-else-if="count > 0">
						{{message2}}
					</div>						
				</div>
			</div>
			
			<!-- 格式v-if="true/false" v-else -->
			<div style="height: 100px;background: #CCC;margin: 5px;">
				<div style="font-size: 20px;">
					v1.v-else指令示例</div>
				<hr />
				<div>
					<div style="font-size: 25px;" v-if="isVisible">
						{{message0}}
					</div>
					<div style="font-size: 25px;" v-else>
						{{message1}}
					</div>					
				</div>
			</div>

			<!-- 格式v-if="true/false" -->
			<div style="height: 100px;background: #CCC;margin: 5px;">
				<div style="font-size: 20px;">
					v0.v-if指令示例</div>
				<hr />
				<div>
					<div style="font-size: 25px;" v-if="isVisible">
						{{message0}}
					</div>
				</div>
			</div>

			<!-- 格式v-show="true/false" -->
			<div style="height: 100px;background: #CCC;margin: 5px;">
				<div style="font-size: 20px;">
					show.v-show指令示例</div>
				<hr />
				<div>
					<div style="font-size: 25px;" v-show="isVisible">
						{{message0}}
					</div>
				</div>
			</div>
		</div>
		<script>
			new Vue({
					el: "#appVue",
					data: {
						message0: "AAA",
						message1: "BBB",
						message2: "CCC",
						count: 10,
						isVisible: true
					}
				}

			)
		</script>
	</body>
</html>
           

REF:

http://www.runoob.com/vue2/vue-if.html

https://cn.vuejs.org/v2/guide/conditional.html