Vue指令之 v-cloak、v-text、v-html實例詳解
v-cloak
當(dāng)用戶頻繁刷新頁面或網(wǎng)速慢時,頁面未完成 Vue.js 的加載時,導(dǎo)致 Vue 來不及渲染,這就會導(dǎo)致在瀏覽器中直接暴露插值(表達(dá)式),Vue由此也給出了解決方法。
在指定標(biāo)簽或整個父容器加入v-cloak指令,通過css選擇器選中v-cloak,隱藏元素即可。
// html
<div v-cloak id="app">
<span>{{ msg }}</span>
</div>
// css
[v-cloak]{
display:"none";
}
// vue實例對象 => vm
var vm = new Vue({
el:'#app',
data:{
msg:"hello world",
}
})

從圖中可以看到,Vue在頁面數(shù)據(jù)傳遞時,如果一開始插值表達(dá)式獲取不到數(shù)據(jù),那么包含“v-cloak”屬性的節(jié)點就會執(zhí)行“display:none”樣式,導(dǎo)致頁面什么也看不到,當(dāng)插值表達(dá)式獲取到數(shù)據(jù)之后,就會在節(jié)點中自動移除“v-cloak”屬性,這時樣式也就不起作用了,從而展示了正常的數(shù)據(jù)。
那么v-cloak指令渲染數(shù)據(jù)會不會影響到附近元素內(nèi)容?

可以看到,v-cloak指令不會覆蓋元素內(nèi)容。
v-text
v-text指令與v-cloak指令非常相似,v-text 指令不會暴露插值,但會覆蓋附近元素內(nèi)容。
// html
<div id="app">
<span v-text="msg">這是一些文字</span>
</div>
// vue實例對象 => vm
var vm = new Vue({
el:'#app',
data:{
msg:"hello world",
}
})

我在span標(biāo)簽中加入了 " 這是一些文字 " ,但是vue覆蓋了元素內(nèi)容,完成后并移除了v-text指令。
v-html
把字符串轉(zhuǎn)義為html代碼插入到文檔,需要注意的是,v-html也會覆蓋附近元素內(nèi)容。
<div id="app">
<p v-html="HTML"></p>
</div>
// vue實例對象 => vm
var vm = new Vue({
el:'#app',
data:{
HTML:'<b>我是通過v-html指令插入</b>'
}
})

v-html指令為我們輸出了真正的HTML代碼,執(zhí)行完并移除該指令在元素上的綁定。
總結(jié)
以上所述是小編給大家介紹的Vue指令之 v-cloak、v-text、v-html實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
vue 封裝自定義組件之tabal列表編輯單元格組件實例代碼
這篇文章主要介紹了vue 封裝自定義組件tabal列表編輯單元格組件實例代碼,需要的朋友可以參考下2017-09-09

