直接贴代码
<style>
[v-cloak] {
display: none;
}
</style>
<div id="app" v-cloak>
{{message}}
</div>
<script>
var app =new Vue({
el:'#app',
data:{
message:'这是一段文本'
}
})
</script>
如上图是v-cloak放的位置
是不是每个需要渲染数据的标签都要添加这个指令?经过试验发现,v-cloak并不需要添加到每个标签,只要在el挂载的标签上添加就可以。
但是有的时候会不起作用,可能的原因有2种:
1、v-cloak的display属性被层级更高的给覆盖掉了,所以要提高层级
[v-cloak] {
display: none !important;
}
2、样式放在了@import引入的css文件中
v-cloak的这个样式放在@import 引入的css文件中不起作用,但可以放在link引入的css文件里或者内联样式中。
v-cloak是一个解决初始化慢导致页面闪动的最佳实践,对于简单的项目很实用。
但是在工程化的项目里,将用到webpack和vue-router。
项目html结构只有一个空的div元素,剩余的内容都是由路由去挂载不同组件完成的,所以不再需要v-cloak。