關於vue.js中v-cloak
的使用,單看官方文件,可能看得有點迷糊:
這個指令保持在元素上直到關聯例項結束編譯。和 css 規則如 [v-cloak] 一起用時,這個指令可以隱藏未編譯的 mustache 標籤直到例項準備完畢。官方文件
v-cloak指令的設計是為了解決什麼問題?
?下面**:
}p>
div>
複製**
在網路不好或載入資料過大的情況下,頁面在渲染的過程會閃爍mustache 標籤:
為了使用者有更好的優化體驗,vue加入了延緩響應的指令v-cloak
,在與css:[v-cloak] 的配合下,可以隱藏未編譯 mustache 的標籤直到例項準備完畢,v-cloak
屬性才會被自動去除,對應的標籤也才可見了。
當然上面的例子很難看到頁面閃爍,因為太快了,我們延後載入 vue 例項:示例參考
lang="en">
charset="utf-8" />
titletitle>
src="">
script>
type="text/css">
[v-cloak]
style>
head>
}span>
div>
settimeout(() =>
})}, 2000)
script>
body>
html>
複製**
**執行,在2000ms
前頁面顯示的是}
。
現在往}
中新增v-cloak
指令,在執行**:
前2000ms
頁面為空,2000ms
後出現hello vue
,解決了在例項掛載之前,頁面閃現mustache 標籤
的尷尬問題。
問題出現在[v-cloak]
的失效。
1、v-cloak
的display
屬性可能被層級更高css給覆蓋了,解決方法:用important
加權:
[v-cloak]
複製**
2、最好的解決辦法就是在index.html
中,以內聯css的方式引入。
type="text/css">
[v-cloak]
style>
複製**
Vue 中的 v cloak 解讀
用法 這個指令保持在元素上直到關聯例項結束編譯。和 css 規則如 v cloak 一起用時,這個指令可以隱藏未編譯的 mustache 標籤直到例項準備完畢。官方api div html 繫結 vue例項,在頁面載入時會閃爍 然後才會出現載入完成字樣,為了效果更明顯,我們可以延後載入 vue 例項...
Vue 中的 v cloak 解讀
用法 這個指令保持在元素上直到關聯例項結束編譯。和 css 規則如 v cloak 一起用時,這個指令可以隱藏未編譯的 mustache 標籤直到例項準備完畢。官方api html 繫結 vue例項,在頁面載入時會閃爍 然後才會出現載入完成字樣,為了效果更明顯,我們可以延後載入 vue 例項 set...
Vue 中的 v cloak 解讀
用法 這個指令保持在元素上直到關聯例項結束編譯。和 css 規則如 v cloak 一起用時,這個指令可以隱藏未編譯的 mustache 標籤直到例項準備完畢。官方api html 繫結 vue例項,在頁面載入時會閃爍 然後才會出現載入完成字樣,為了效果更明顯,我們可以延後載入 vue 例項 set...