Fork me on GitHub

关于vue使用v-clock后仍显示变量的解决办法

在使用vue绑定数据的时候,渲染页面时会出现变量闪烁,例如:

1
2
3
<div class="#app">
<p>{{value.name}}</p>
</div>

在页面加载时会短暂的看见value.name,在页面出现,过了几秒后才会看见渲染的数据,在vue里面有个v-clock指令可以解决这个问题,那么,v-cloak要放在什么位置呢,是不是每个需要渲染数据的标签都要添加这个指令,经过试验发现,v-cloak并不需要添加到每个标签,只要在el挂载的标签上添加就可以:

1
2
3
<div class="#app" v-cloak>
<p>{{value.name}}</p>
</div>

接着在css里面加入

1
2
3
[v-cloak] {
display: none;
}

这样就可以防止页面闪烁了

但是有时候会不起效果,原因有下面两种:
1、v-clock的display属性被层级更高的给覆盖掉了,所以要提高层级

1
2
3
[v-cloak] {
display: none !important;
}

2、样式放在了@import引入的css文件中
v-cloak的这个样式放在@import 引入的css文件中不起作用,可以放在link引入的css文件里或者内联样式中