摘要:如果一次判斷的是多個(gè)元素,可以在內(nèi)置的元素上使用條件指令,最終渲染的結(jié)果不會(huì)包含該元素。列表渲染也支持用代替作為分隔符,它更接近迭代器的語(yǔ)法的表達(dá)式支持一個(gè)可選參數(shù)作為當(dāng)前項(xiàng)的索引。分隔符前的語(yǔ)句使用括號(hào),第二項(xiàng)就是當(dāng)前項(xiàng)的索引。
學(xué)習(xí)筆記:內(nèi)置指令內(nèi)置指令 基本指令 v-cloak
v-cloak不需要表達(dá)式,它會(huì)在Vue實(shí)例結(jié)束編譯時(shí)從綁定的HTML元素上移除,經(jīng)常和CSS的display: none;配合使用:
{{message}}
當(dāng)網(wǎng)速較慢、Vue.js文件還沒(méi)加載完時(shí),在頁(yè)面上會(huì)顯示{{message}}的字樣,直到Vue創(chuàng)建實(shí)例、編譯模板時(shí),DOM才會(huì)被替換,所以這個(gè)過(guò)程屏幕有閃。只要加一句CSS就可以解決這個(gè)問(wèn)題:
[v-cloak] { display: none; }
v-cloak是一個(gè)解決初始化慢導(dǎo)致頁(yè)面閃動(dòng)的最佳實(shí)踐,對(duì)于簡(jiǎn)單的項(xiàng)目很實(shí)用。
在工程化的項(xiàng)目中,項(xiàng)目的HTML結(jié)構(gòu)只有一個(gè)空的div元素,剩下的內(nèi)容都由路由掛載不同組件完成,這時(shí)不再需要v-cloak。
v-oncev-once是一個(gè)不需要表達(dá)式的指令,作用是定義它的元素或者組件只渲染一次,包括元素或組件的所有子節(jié)點(diǎn)。首次渲染后,不再隨數(shù)據(jù)的變化重新渲染,將被視為靜態(tài)內(nèi)容。
v-once在業(yè)務(wù)中很少使用,如果需要進(jìn)一步優(yōu)化性能時(shí),可能會(huì)用到。
條件渲染指令 v-if、v-else-if、v-elseVue.js的條件指令可以根據(jù)表達(dá)式的值在DOM中渲染或銷毀元素/組件。
v-else-if要緊跟v-if,v-else要緊跟v-else-if或v-if,表達(dá)式的值為真時(shí),當(dāng)前元素/組件及所有子節(jié)點(diǎn)將被渲染,為假時(shí)被移除。
如果一次判斷的是多個(gè)元素,可以在Vue.js內(nèi)置的元素上使用條件指令,最終渲染的結(jié)果不會(huì)包含該元素。
Vue在渲染元素時(shí),處于效率考慮,會(huì)盡可能地復(fù)用已有的元素,而非重新渲染。
See the Pen 條件渲染指令 by whjin (@whjin) on CodePen.