1、簡單介紹:
在Vue中,指令(Directives)是帶有v-字首的特殊屬性,用於操作DOM元素和響應資料變化。
2、語法規則
- vue中的所有的指令都以v開始,同時是以html標籤的形式存在,如:
<html標籤 v-指令名:引數="javascript表示式"></html>
。之前在{{}}插值語法中可以用的放到這裡也可以用 - 有的指令不需要引數也不需要表示式,如
v-once
- 有些指令不需要引數但是需要表示式,如`v-if="表示式"
- 有些指令既需要引數,也需要表示式,如
v-bind:引數="表示式"
3、常見指令
v-once:
作用:只渲染元素一次。隨後的重新渲染,元素及其所有的子節點將被視為靜態內容並跳過。這可以用於最佳化更新效能。
v-if:
作用:表示式的執行結果需要是一個布林型別的資料:true或者fa1setrue:這個指令所在的標籤,會被渲染到瀏覽器當中。fa1se:這個指令所在的標籤,不會被渲染到覽器當中。
v-bind: 可以讓html標籤中的某個屬性產生動態效果
語法:<html標籤 v-bind:引數="表示式"></html標籤>
html頁面是無法識別v-bind
的,只有透過vue進行轉換,才能識別。假設一個標籤編譯前的值為:<html標籤 v-bind:引數="表示式"></html>
但是編譯後會變成:<html標籤 引數名="表示式結果"></html>
。
雖然原則上v-bind後面的引數可以隨便寫,但是隻有寫成html標籤中有的屬性才會生效。
v-bind:引數名="表示式"
由於使用頻率極高所以可以簡寫為:引數名="表示式"
v-bind
是單向繫結:也就是說資料發生變化,檢視也會發生變化,但是檢視發生變化,資料不會發生變化。
v-model:
v-model
也是繫結資料的指令,和v-bind
不同的是v-model
是雙向資料繫結。
v-model更多的用於表單類html元素上,如<select>
、 input
、textarea
。因為這種元素才會提供互動介面。才可以讓使用者去改變檢視。
通常來說v-model是用在value屬性上,所以v-model也有簡寫方式:v-model="表示式"