1.将template下的第一个盒子隐藏
.product {
visibility: hidden;
}
2.给这个盒子绑定 ref
<template>
<view class="product" ref="details">
3.在接口数据拿到的地方设置盒子显示
this.$refs.details.$el.style.visibility = "visible";
这是我用的比较好的一个方法。如果是jquery项目,也可以同原理,第三步改成定时器里异步修改dom的属性显示。使用rem的时候也会出现这种页面布局刷新闪烁的问题。也可以的同样扽思路去解决。
也可以配合vue的$nextTick方法。
让dom 数据全部加载完再显示页面,缺点是页面如果内容很多,加载进去的速度肯定也会变慢。
VUE初始化闪动
1.根元素加上
style="display:none;" :style="{display:block;}"
2.利用v-clock
<div class="#app" v-cloak>
<p>{{name}}</p>
</div>
[v-cloak] {
display: none;
}
也可以给绑定的变量设置默认值