v-if
可以根據(jù)表達(dá)式的值在DOM中生成或移除一個(gè)元素非洲。支持template語法,惰性語法-如果初始渲染時(shí)條件為假,則什么也不做吉执,在條件第一次為真時(shí)才開始局部編譯
v-show
可以根據(jù)表達(dá)式的值顯示或者隱藏HTML元素。不支持template語法地来。
v-if有更高的切換消耗戳玫,而v-show有更高的初始渲染消耗,因此未斑,如果需要頻繁地切換咕宿,則使用v-show較好;如果在運(yùn)行時(shí)條件不大可能改變蜡秽,則使用v-if較好
v-else
它必須跟著v-if或v-show府阀,充當(dāng)else功能
v-modal
用在input、select芽突、text试浙、CheckBox、radio等表單控件元素上創(chuàng)建雙向數(shù)據(jù)綁定
<input type=``"text"
v-modal=``"data.name"
placeholder=``""
/>
v-modal上可以加多個(gè)參數(shù)number寞蚌、lazy田巴、debounce
v-for
數(shù)據(jù)重復(fù)渲染指令
Vue.js 1.0.17及以后版本支持of分隔符;Vue.js 0.12.8及以后版本支持in分隔符挟秤。
<li v-for="item in items" class= "item-{{$index}}"> {{$index}}-{{item.name}} </li>
v-for可以和Vue.js提供的內(nèi)置過濾器和排序數(shù)據(jù)一起使用壹哺。
filterBy
語法:filterBy searchKey [in dataKey…]
用法:
<input v-modal="searchText"><ul><li v-for="user in users | filterBy searchText in 'name'">{{name}}</li>
</ul>`
再輸入框輸入名稱,ul數(shù)據(jù)會根據(jù)輸入的值艘刚,在users的name字段中過濾出我們想要的信息管宵,并展示出來。
orderBy
語法:orderBy sortKey [reverseKey]
用法:
<ul>
<li v-for="user in users | orderBy field reverse">{{user.name}}</li>
</ul>
在ul標(biāo)簽中根據(jù)field變量代表的tag字段正序排列數(shù)據(jù)
v-text
v-text指令可以更新元素的textContent攀甚,作用和{{Mustache}}一樣
v-html
v-html指令可以更新元素的innerHtml箩朴,作用和{{{Mustache}}}一樣
不建議在網(wǎng)站上直接動態(tài)渲染任意的HTML片段,容易導(dǎo)致XSS攻擊秋度。
v-bind
v-bind指令用于響應(yīng)更新Html特性炸庞,將一個(gè)或多個(gè)attribute,或者一個(gè)組件prop動態(tài)綁定到表達(dá)式静陈。v-bind可以簡寫:
<img v-bind:src="imgSrc">
<img :src="imgSrc">
在綁定prop時(shí)燕雁,prop必須在子組件中聲明诞丽。可以用修飾符指定不同的綁定類型拐格。
.sync-雙向綁定僧免,只能用于prop
.once-單項(xiàng)綁定,只能用于prop
.camel-將綁定的特性名字轉(zhuǎn)換回駝峰命名捏浊。只能用于普通HTML特性的綁定懂衩,通常用于綁定用駝峰命名的SVG特性,比如viewBox金踪。
<my-component :prop.sync="someThing"></my-component>
v-on
v-on指令用于綁定事件監(jiān)聽器浊洞。事件類型由參數(shù)指定;表達(dá)式可以是一個(gè)方法的名字或一個(gè)內(nèi)聯(lián)語句胡岔;如果沒有修飾符法希,也可以省略。
`<button v-on:click="doThis"></button>`
<button v-on:click="doThis(hello,$event)"></button>
//--縮寫--
<button @click="doThis"></button>
v-on后面可以添加的修飾符:
.stop-調(diào)用event.stopPropagation()
.prevent-調(diào)用event.preventDefault()
.capture-添加事件監(jiān)聽時(shí)使用capture模式
.self-只當(dāng)事件是從偵聽器綁定的元素本身觸發(fā)時(shí)才觸發(fā)回調(diào)
.{KeyCode|KeyAlias}-只在指定按鍵上觸發(fā)回調(diào)靶瘸。Vue.js提供的鍵有:[esc:27苫亦、tab:9、enter:13怨咪、space:32屋剑、'delete':[8,46]、up:38诗眨、left:37唉匾、right:39、down:40]
v-ref
在父組件上注冊一個(gè)子組件的索引匠楚,便于直接訪問巍膘,不需要表達(dá)式,必須提供參數(shù)id油啤〉渑牵可以通過父組件的$refs對象訪問子組件。
當(dāng)v-ref和v-for一起使用時(shí)益咬,注冊的值是一個(gè)數(shù)組,包含所有子組件帜平,對應(yīng)于綁定數(shù)組幽告;
如果v-for使用在一個(gè)對象上,注冊的值是一個(gè)對象裆甩,包含所有子組件冗锁,對應(yīng)于綁定對象。
v-el
為DOM元素注冊一個(gè)索引嗤栓,方便通過所屬實(shí)例的els訪問這個(gè)元素冻河」坑剩可以用v?el:some?el設(shè)置this. els訪問這個(gè)元素∵缎穑可以用v?el:some?el設(shè)置this.els訪問這個(gè)元素锭弊。可以用v-el:some-el 設(shè)置this.els.someEl.
<span v-el:msg>hello</span>
<span v-el:other-msg>world</span>
通過this.$els獲取響應(yīng)的DOM元素:
this.$els.msg.textContent //-> "hello"
this.$els.otherMsg.textContent //-> "world"
v-pre
編譯時(shí)跳過當(dāng)前元素和它的子元素擂错∥吨停可以用來顯示原始的Mustache標(biāo)簽。跳過大量沒有指令的節(jié)點(diǎn)會加快編譯钮呀。
v-cloak
v-cloak這個(gè)指令保持在元素上直到關(guān)聯(lián)實(shí)例結(jié)束編譯剑鞍。和css [v-cloak]{display:none}
一起使用,這個(gè)指令可以隱藏未編譯的Mustache標(biāo)簽直到實(shí)例準(zhǔn)備完畢爽醋,否則在渲染頁面時(shí)蚁署,有可能用戶會先看到Mustache標(biāo)簽,然后看到編譯后的數(shù)據(jù)蚂四。
<div v-cloak> {{message}} </div>
下面看下去除vue插值表達(dá)式{{}}
vue 提供了v-cloak指令光戈,該指令會綁定在元素上直到關(guān)聯(lián)實(shí)例結(jié)束編譯。
[v-cloak] {style:display:none}
和v-cloak一起使用時(shí)证杭,會隱藏Mustach標(biāo)簽