通过v-show指令判断数组长度来控制元素显示隐藏,ajax数据还没取回来的时候造成页面闪烁(非v-cloak的问题)

需求:列表如果没有数据会显示一个提示为空的图片和一行文字,数据通过ajax取回来的时候,显示列表。

<--------------------------------------------------------->

出现问题:vue中取数据是异步的,数组中的数据还没有取回来的时候,class为empty这个div会显示出来,页面会先显示这个empty的div而后才显示列表数据,造成页面会闪烁。

HTML代码:

clipboard.png

data数据:

clipboard.png

ajax取数据

clipboard.png

阅读 7.6k
2 个回答
v-cloak
这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。
[v-cloak] {
  display: none;
}
<div v-cloak>
  {{ message }}
</div>
不会显示,直到编译结束。

<div v-show="imgs.length"> 亲测可以用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题