前沿
在項目在開發中,經常會遇到當數據加載時vue的一些標簽就會閃現,然后等數據加載完后消失,這時候就需要用到官網中提到的v-cloak來解決。
首先說一下經常遇到的情況。
step1,加載時遇到{{value.name}}
閃爍,是因為你在渲染時是這么寫的<p>{{value.name}}</p>
step2,加載時遇到一個空的盒子里邊什么也沒有,是因為你在渲染時是這么寫的<p v-html="value.name"></p>
解決辦法
那么,v-cloak要放在什么位置呢,是不是每個需要渲染數據的標簽都要添加這個指令,經過試驗發現,v-cloak并不需要添加到每個標簽,只要在el掛載的標簽上添加就可以,這是最簡單有效的辦法
<div class="#app" v-cloak>
<p>{{value.name}}</p>
</div>
然后,在css里面要添加
[v-cloak] {
display: none;
}
這樣就可以防止頁面閃爍了。
但是有的時候會不起作用,可能的原因有二:
一,v-cloak的display屬性被層級更高的給覆蓋掉了,所以要提高層級
[v-cloak] {
display: none !important;
}
二,樣式放在了@import引入的css文件中(傳統的開發方式)
v-cloak的這個樣式放在@import 引入的css文件中不起作用,可以放在link引入的css文件里或者內聯樣式中