小程序骨架屏,利用SelectorQuery自动生成骨架屏
小程序骨架屏
将此项目中 /demo/components/skeleton
文件夹拷贝到你的项目中
index.json
{
"usingComponents": {
"skeleton": "../../components/skeleton/skeleton"
}
}
index.wxml
<!-- 引入组件 -->
<skeleton loading="spin" bgcolor="#FFF" selector="skeleton" isDev="true"></skeleton>
index.wxml
<!-- 引入组件 -->
<skeleton loading="spin" bgcolor="#FFF" selector="skeleton" isDev="true"></skeleton>
<!-- 标识 skeleton -->
<view class="page skeleton">
<!-- 矩形元素标识 skeleton-rect -->
<view class="search-bar skeleton-rect">
Hello, Search
</view>
<view class="userinfo">
<!-- 圆形元素标识 skeleton-circle -->
<view class="userinfo__avatar skeleton-circle">
<open-data type="userAvatarUrl"></open-data>
</view>
<view class="userinfo__nickname skeleton-rect">
<open-data type="userNickName"></open-data>
</view>
</view>
</view>
点击右下角按钮会预览骨架屏,同时在控制台会生成骨架屏数据,这时候想办法保存数据,然后再引入数据,这样就可以得到骨架屏了
支持的元素类型
type | selector name | desc |
---|---|---|
bg | .${selector}-bg | 圆角矩形淡色样式 |
rect | .${selector}-rect | 圆角矩形样式 |
circle | .${selector}-circle | 圆形样式 |
// properties
{
/**
* 骨架屏数据
*/
data: {
type: Object,
value: null,
},
/**
* 是否是开发模式,如果为true, 则显示生成按钮
*/
isDev: {
type: Boolean,
value: false,
},
/**
* 选择器名字
*/
selector: {
type: String,
value: 'skeleton',
},
/**
* 骨架屏背景
*/
bgcolor: {
type: String,
value: '#FFF',
},
/**
* 骨架屏动画效果,可以是如下值: 'spin', 'chiaroscuro', 'shine'
*/
loading: {
type: String,
value: '',
},
},
6 个评论
组件怎么生成骨架屏
您好,如果页面是由很多个组件构成的 如何处理
大佬, 骨架屏只能手动点击
> 那什么时候要关闭骨架屏??如何监听setData 的数据已经在页面上完成渲染,
和loading icon 一样,网络数据请求成功了就关闭骨架屏
那什么时候要关闭骨架屏??如何监听setData 的数据已经在页面上完成渲染,