多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 1. 使用须知 官网文档 [https://www.uviewui.com/components/skeleton.html](https://www.uviewui.com/components/skeleton.html) 占位说明 ![](https://img.kancloud.cn/53/30/533009e45f3ef9de110496ac53907686_1011x215.png) `u-skeleton` 组件需要跟 `class=u-skeleton` 元素同一等级 ![](https://img.kancloud.cn/5f/9f/5f9ff5faa78e348f97e27efdc3d1e9c5_1664x500.png) ## 2. 图片/图标固定元素 - 对于有固定宽高的元素的,直接使用`u-skeleton-*`就可以,不用考虑占位的问题。 - 如果是高度自适应的图片,建议使用`min-height` ## 3. 文字元素 当请求未结束时,这时候数据是空的,空的文字数据是没有宽高的,这样对一个的骨架屏元素就显示不出来。 ``` <block> <!--u-skeleton-circle 绘制圆形--> <image class="userinfo-avatar u-skeleton-circle" :src="userInfo.avatarUrl"></image> <!--u-skeleton-fillet 绘制圆角矩形(请求未完成,nickname没有数据,所以会导致骨架屏元素就显示不了)--> <view class="nickname u-skeleton-fillet">{{userInfo.nickName}}</view> </block> ``` 使用 `$st(text = '', loading = false, count = 4)` 方法输出文字占位符 text:输出的文字 loading:骨架屏的加载状态 count:占位文字的数量,目前是中文长度。 ``` <block> <!--u-skeleton-circle 绘制圆形--> <image class="userinfo-avatar u-skeleton-circle" :src="userInfo.avatarUrl"></image> <!--u-skeleton-fillet 绘制圆角矩形(请求未完成,nickname没有数据,所以会导致骨架屏元素就显示不了)--> <view class="nickname u-skeleton-fillet">{{$st(userInfo.nickName,loading,4)}}</view> </block> ``` ## 4. 请求列表数据 大多数情况下,请求的数据都是列表数据,但是骨架屏元素都是设置在列表元素项里的,如果列表的数据是空,那边就连占位符都没有展示出来。 ``` <view style="margin: 20px 0"> <!-- 如果 lists 没有数据,则下方的 u-skeleton-rect 不会显示 --> <view v-for="(item,index) in lists" :key="index" class="lists"> <!--u-skeleton-rect 绘制矩形--> <view class="lists-text u-skeleton-rect">{{$st(item,loading,18)}}</view> </view> </view> ``` 同样是调用 `$st(array=[], loading = false, count = 4)` 方法输出数组 array:输出数组 loading:骨架屏的加载状态 count:数组项数量。 ``` <view style="margin: 20px 0"> <view v-for="(item,index) in $st(lists,loading,3)" :key="index" class="lists"> <!--u-skeleton-rect 绘制矩形--> <view class="lists-text u-skeleton-rect">{{$st(item,loading,18)}}</view> </view> </view> ``` 通过`$st`方法获得的占位数组是 默认空对象的{}的,有时候空对象会对二级元素产生错误,你也可以自己通过`computed` 处理列表数据。 ``` computed: { show_list() { return this.lists.length == 0 ? [{a:{b:c}}, {a:{b:c}}, {a:{b:c}}] : this.lists } }, ```