骨架屏在Vue中怎么实现才不会闪屏?

Air-爱书 阅读 30

我用 Vue 做了个商品列表页,数据从接口拉取,想加个骨架屏提升体验。但每次加载完数据后,骨架屏消失、真实内容出现的瞬间会“闪一下”,看起来特别卡。我试过用 v-if="loading" 控制骨架屏和真实内容的切换,但还是有闪烁。

是不是应该用 v-show?或者需要配合 CSS 动画?有没有人遇到过类似问题?我的骨架屏是用 div 模拟的占位块,结构大概像这样:

<div v-if="loading" class="skeleton">
  <div class="skeleton-item"></div>
  <div class="skeleton-item"></div>
</div>
<div v-else>
  <product-item v-for="item in list" :key="item.id" :data="item" />
</div>
我来解答 赞 5 收藏
二维码
手机扫码查看
暂无解答

暂无解答