溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

vuejs中有沒(méi)有指令

發(fā)布時(shí)間:2021-09-28 10:33:43 來(lái)源:億速云 閱讀:167 作者:小新 欄目:web開(kāi)發(fā)

這篇文章主要介紹vuejs中有沒(méi)有指令,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

vuejs有指令。Vuejs的指令是以“v-”開(kāi)頭的,它們作用于HTML元素,指令提供了一些特殊的特性,將指令綁定在元素上時(shí),指令會(huì)為綁定的目標(biāo)元素添加一些特殊的行為,可以將指令看作特殊的HTML特性。

本教程操作環(huán)境:windows7系統(tǒng)、vue2.9.6版,DELL G3電腦。

vuejs有指令。

Vue中什么是指令

Vue.js的指令是以v-開(kāi)頭的,它們作用于HTML元素,指令提供了一些特殊的特性,將指令綁定在元素上時(shí),指令會(huì)為綁定的目標(biāo)元素添加一些特殊的行為,我們可以將指令看作特殊的HTML特性(attribute)。

  • VueJS通過(guò)被稱(chēng)為指令的新屬性來(lái)擴(kuò)展HTML。

  • ViueJS通過(guò)內(nèi)置的指令來(lái)為應(yīng)用添加功能。

  • VueJS允許你自定義指令。

指令的特征

  • 所有指令都包含在Vue實(shí)例管理的范圍內(nèi)。

  • vueJS指令是擴(kuò)展的HTML屬性,帶有前綴v-。

  • v-model指令把元素值(比如輸入域的值)綁定到應(yīng)用程序,存儲(chǔ)值。

vuejs常用指令

Vue.js提供了一些常用的內(nèi)置指令,接下來(lái)我們將介紹以下幾個(gè)內(nèi)置指令:

  • v-if指令

  • v-show指令

  • v-else指令

  • v-for指令

  • v-bind指令

  • v-on指令

v-if指令

v-if是條件渲染指令,它根據(jù)表達(dá)式的真假來(lái)刪除和插入元素
基本語(yǔ)法:
v-if="expression"
expression是一個(gè)返回布爾值的表達(dá)式,表達(dá)式可以是一個(gè)布爾屬性,也可以是一個(gè)返回布爾的運(yùn)算式。

<div id="app">
			<div v-if="isMale">男士</div>
			<div v-if="age>=20">age:{{age}}</div>
		</div>
		
var vm = new Vue({
			el: '#app',
			data: {
				age:25,
				isMale:true,
			}
		})

v-show指令

v-show和v-if區(qū)別。
v-show不管條件是否成立,都會(huì)渲染html,而v-if只有條件成立才會(huì)渲染

先看兩個(gè)截圖,第一個(gè)是當(dāng)isMale為true時(shí),第二張圖是isMale為false條件不成立時(shí),可以看到v-if的html并沒(méi)有渲染出來(lái),
而使用v-show的p僅僅是更改了它的樣式display: none;

vuejs中有沒(méi)有指令
vuejs中有沒(méi)有指令

<div id="app">
			<div v-if="isMale">男士v-if</div>
			<div v-show="isMale">男士v-show</div>
		</div>
var vm = new Vue({
			el: '#app',
			data: {
				isMale:false
			}
		})

v-else指令

v-else指令與v-if或者v-show同時(shí)使用,v-if條件不成立則會(huì)顯示v-else內(nèi)容

<div id="app">
			<div v-if="isMale">男士</div>
			<div v-else>女士</div>
		</div>
		var vm = new Vue({
			el: '#app',
			data: {
				isMale:true
			}
		})

v-for指令

v-for指令基于一個(gè)數(shù)組渲染一個(gè)列表,它和JavaScript的遍歷語(yǔ)法相似
v-for="item in list"
list是一個(gè)數(shù)組,item是當(dāng)前遍歷的數(shù)組元素
v-for="(item,index) in list"其中index是當(dāng)前循環(huán)的索引,下標(biāo)從0開(kāi)始

vuejs中有沒(méi)有指令

<div id="app">
			<table>
				<tr class="thead">
					<td>序號(hào)</td>
					<td>姓名</td>
					<td>年齡</td>
				</tr>
				<tr v-for="(item,index) in list">
					<td v-text="index+1"></td>
					<td v-text="item.name"></td>
					<td v-text="item.age"></td>
				</tr>
			</table>
		</div>
		
var vm = new Vue({
			el: '#app',
			data: {
				list:[{
					name:'章三',
					age:18
				},{
					name:'李四',
					age:23
				}]
			}
		})

v-bind指令

v-bind動(dòng)態(tài)地綁定一個(gè)或多個(gè)特性,可以在其名稱(chēng)后面帶一個(gè)參數(shù),中間放一個(gè)冒號(hào)隔開(kāi),這個(gè)參數(shù)通常是HTML元素的特性(attribute),如v-bind: class

class可以和v-bind:class同時(shí)存在 ,也就是說(shuō)有class了,再添加v-bind:class并不會(huì)覆蓋原來(lái)的樣式類(lèi),而是在原來(lái)基礎(chǔ)上添加新的類(lèi)名

<div id="app">
			<img v-bind:src="img" class="logo" 
				v-bind:class="isLogo?'':'product'" 
				v-bind:style="{'border':hasBorder?'2px solid red':''}"></img>
		</div>
		
		var vm = new Vue({
			el: '#app',
			data: {
				img:'https://www.baidu.com/img/bd_logo1.png',
				isLogo:false,
				hasBorder:true
			}
		})

以上v-bind:src也可簡(jiǎn)寫(xiě)成:src,修改上面代碼

<div id="app">
			<img :src="img" class="logo" 
				:class="isLogo?'':'product'" 
				:style="{'border':hasBorder?'2px solid red':''}"></img>
		</div>

v-on指令

v-on用于監(jiān)聽(tīng)DOM事件,用法和v-bind類(lèi)似,例如給button添加點(diǎn)擊事件
<button v-on:click="show">
同樣,和v-bind一樣,v-on也可以使用簡(jiǎn)寫(xiě),用@符號(hào)代替,修改代碼:
<button @click="show">

我們來(lái)看個(gè)例子:

vuejs中有沒(méi)有指令

以下是一個(gè)點(diǎn)擊隱藏和顯示p文本段落的代碼

<div id="app">			<p v-show="isShow">微風(fēng)輕輕的吹來(lái),帶來(lái)了一絲絲涼意</p>
			<div>
				<button type="button" v-on:click="show(1)">顯示</button>
				<button type="button" v-on:click="show(0)">隱藏</button>
			</div>
		</div>		
		var vm = new Vue({			el: '#app',			data: {				isShow:true
			},			methods:{				show:function(type){					if(type){						this.isShow = true;
					}else{						this.isShow = false;
					}
				}
			}
		})

綜合示例

vuejs中有沒(méi)有指令

<div id="app">
			<div class="title">添加新用戶(hù)</div>
			<div class="form">
				姓名:<input type="text" v-model="person.name"><br/>
				年齡:<input type="text" v-model="person.age"><br/>
				<button class="btn" type="button" @click="add">添加</button>
			</div>
			<table>
				<tr class="thead">
					<td>序號(hào)</td>
					<td>姓名</td>
					<td>年齡</td>
					<td>操作</td>
				</tr>
				<tr v-for="(item,index) in list">
					<td v-text="index+1"></td>
					<td v-text="item.name"></td>
					<td v-text="item.age"></td>
					<td>
						<a href="javascript:;" @click="deleteItem(index)">刪除</a>
						<a v-if="item.age>=25" href="javascript:;" @click="marry(index)">可以結(jié)婚了</a>
					</td>
				</tr>
			</table>
		</div>
		new Vue({
			el: '#app',
			data: {
				person:{
					name:'',
					age:'',
				},
				list:[{
					name:'章三',
					age:18
				},{
					name:'李四',
					age:23
				}]
			},
			methods:{
				add:function(){
					this.list.push(this.person);
					this.person = {name:'',age:''};
				},
				deleteItem:function(index){
					// 刪除一個(gè)數(shù)組元素
					this.list.splice(index,1);
				},
				marry:function(){
					alert("不好意思,你沒(méi)有女朋友結(jié)不了婚");
				}
			},
			created:function(){
			}
		})

以上是“vuejs中有沒(méi)有指令”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI