uni-app开发微信小程序:首页骨架屏

https://www.bilibili.com/video/BV1Bp4y1379L?p=31&vd_source=5ccd106cda18d778b6b1ecebef66af7b

什么是骨架屏

https://developers.weixin.qq.com/miniprogram/dev/devtools/skeleton.html

骨架屏是页面的一个空白版本,通常会在页面完全渲染之前,通过一些灰色的区块大致勾勒出轮廓,待数据加载完成后,再替换成真实的内容。通常在小程序中,我们需要手工维护骨架屏的代码,当业务变更时,同样需要对骨架屏代码进行调整。为了开发的便利,开发者工具提供了自动生成骨架屏代码的能力。

总体步骤

uni-app开发微信小程序,生成首页骨架屏的步骤:

  • 在微信开发者工具中生成骨架屏
  • 转成vue组件
  • 数据正在加载中,显示骨架屏;否则,显示正常组件。

过程示例

在微信开发者工具中生成首页的骨架屏

点击页面信息,然后点击 生成骨架屏:
在这里插入图片描述

弹出提示:
在这里插入图片描述

点击 确定,自动打开了生成的index.skeleton.wxml文件:
在这里插入图片描述

注意:骨架屏仅包括页面首屏中的可见区域,对于横向滚动的 swiper 等容器,超出屏幕的子元素将被忽略;

转成vue组件

处理index.skeleton.wxml文件

拷贝index.skeleton.wxml文件的内容,然后到vscode中的uni-app应用中,生成一个新的文件PageSkeleton.vue,将index.skeleton.wxml文件的内容粘贴进来:
在这里插入图片描述

文件开头的注释是针对在原生微信小程序中如何操作的提示,在uni-app中不需要这样操作,可以
删掉这些注释:
在这里插入图片描述

页面中的自定义导航栏CustomNavbar部分不涉及数据请求,所以不需要放在骨架屏中(因为骨架屏是针对要请求数据而暂时没有返回时的用户体验提升的),把这部分删掉:
在这里插入图片描述

变为:
在这里插入图片描述

在这里插入图片描述

下面的红框中的四个部分涉及到数据请求,是需要处理成骨架屏的,把它们保留;其它不需要的部分删掉:
在这里插入图片描述

删除以后变为下面这样:
在这里插入图片描述

因为是ts项目,现在页面中有几个告警:
在这里插入图片描述

现在处理下,改为动态属性:
在这里插入图片描述

处理样式文件index.skeleton.wxss

拷贝index.skeleton.wxss中的内容,到vscode中,在PageSkeleton.vue文件中增加样式:
在这里插入图片描述

将index.skeleton.wxss中的内容粘贴进来:
在这里插入图片描述

将样式开头的注释删掉,变为如下:
在这里插入图片描述

现在结构和样式都已经准备完毕了:
在这里插入图片描述

在页面中根据数据加载是否完成条件骨架屏

改造首页的页面index.vue,插入骨架屏文件,然后条件显示:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

骨架屏和正常的内容是互斥的,所以使用了v-if / v-else条件渲染:
在这里插入图片描述

为了便于查看效果,在微信开发者工具中把网络调成2G:
在这里插入图片描述

然后点击 编译,可以看到,在数据没有加载出来之前,显示了骨架屏:
在这里插入图片描述

数据加载完成以后,就显示正常的内容了:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值