天天看點

vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)

vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)

v-model 特點

vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)

指令是帶有’v-'字首的特殊屬性。

指令的職責是,當指令對應的值發生改變的時候,将其産生的連帶影響,響應式地作用于Dom.

v-model

可以幫助我們實作在表單控件或者元件上建立雙向資料綁定。

例子:

<body>
	    <div id="app">
			<!-- 此處增加一個輸入框,并且添加v-model指令,使之與msg進行綁定 
             注意寫法:雙引号内不需要添加插值
            -->
			<input  type="text" v-model="msg">
			{{msg}}
		  
		</div>
	   <script type="text/javascript">
	      let vm=new Vue({
			  el:'#app',
		
			  data:{
				  msg:'vue'
			  },
			  computed:{
	
			  },
		   
		  });
           
vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)

如上圖,當msg這個值發生改變的時候,将會改變輸入框内的值,相應也改變頁面的msg的值。

vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)

當我們改變輸入框内的值的時候,vm執行個體中的msg值也會發生相應的改變。

v-once

隻渲染元素群組件一次。随後的重新渲染,元素/元件及其所有的子節點将被視為靜态内容并跳過。這可以用于優化更新性能。

例子:在網頁上,我們的logo或者頁腳網站有關資訊以及相關連結隻需要渲染一次就可以,不需要相應使用者的操作。

<div id="app">
			<!-- 此處增加 -->
			<div v-once>
				<img src="logo.png" />
			</div>
		</div>
           

v-html

可以簡單了解為能夠識别标簽,主要是用來渲染标簽代碼

例子

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
	    <div id="app">
			<!-- 此處增加 -->
			<div v-once >
				<img src="logo.png" />
			</div>
			
		   <div>
			   {{msg}}
		   </div>
		  <div  v-html='msg'>  //v-html右邊要綁定對那個資料進行渲染
		  		{{msg}}
		  </div>
		</div>
	   <script type="text/javascript">
	      let vm=new Vue({
			  el:'#app',
		
			  data:{
				  msg:'<p style="color:red ">vue</p>'
			  },
		   
		  });
		
	   </script>
	</body>
	
</html>

           
vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)

v-if

根據表達式的值的真假條件渲染元素。當條件為真時,進行渲染,當條件為假的時候,不進行渲染。

例子:當toggle為true的時候,顯示美女,否則,顯示帥哥

<body>
	    <div id="app">
			<!-- 此處增加 -->
			<p v-if="toggle">帥哥</p>
			<p v-if="!toggle">美女</p>
		</div>
	   <script type="text/javascript">
	      let vm=new Vue({
			  el:'#app',
		
			  data:{
				    toggle:false
			  },
		   
		  });
		
	   </script>
	</body>
           
vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)

v-else

相當于javascript 中else的意思,它必須跟着v-if,充當else功能。

例子:上面的兩個v-if标簽,可以使用v-else替代。

<body>
	    <div id="app">
			<!-- 此處增加 -->
			<p v-if="toggle">帥哥</p>
			<p v-else="toggle">美女</p>
		</div>
	   <script type="text/javascript">
	      let vm=new Vue({
			  el:'#app',
		
			  data:{
				    toggle:false
			  },
		   
		  });
		
	   </script>
	</body>
           
vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)

v-else-if

一般在v-if或者v-else-if元素之後

<div id="app">
			<!-- 此處增加 -->
			<p v-if="type==A">帥哥</p>
			<p v-else-if="type==B">帥哥</p>
			<p v-else="type==C">帥哥</p>
		</div>
           
v-if指令比較耗性能,因為當條件為真,它會讓元素進行顯示,顯示的原理就是插入标簽元素,如果條件為假,就把标簽從網頁中删掉。對于頻繁顯示與隐藏的元素,一般使用v-show來取代。

v-show

根據表達式之真假值,切換元素的 display CSS 屬性。 可以通俗了解,元素顯示或者隐藏,控制是元素的css樣式的display屬性,顯示相當于設定display=‘block’, 隐藏相當于 display=‘none’。

<body>
	    <div id="app">
			<!-- 此處增加 -->
			<p v-show="toggle">帥哥</p>
			<p v-show="!toggle">美女</p>
		</div>
	   <script type="text/javascript">
	      let vm=new Vue({
			  el:'#app',
		
			  data:{
				    toggle:false
			  },
		   
		  });
		
	   </script>
	</body>
	
           
vue.js基本指令(v-model,v-html,v-on,v-if v-else-if,v-show) --重學vue.js筆記(2)