@小程序生命周期
@路由跳转方式与区别
@小程序的性能优化
开启代码压缩
- 上传代码时勾选开发者工具中“压缩代码”选项;
处理静态资源
- 预先对图片、视频等静态资源进行物理压缩,推荐大家一个在线压缩图片的网站 TinyPNG;
- 能使用CDN服务的图片视频等就尽量不要打到代码包中;
对页面进行分包
- 主包只打首页等高频页面;
- 用户可能不会访问的页面分模块打到子包中,如果用户果然不访问这些页面,就不会对这些分包进行下载了;
- 分包配置请参考 uni-app卖座电影多端开发纪实(六):多端打包 / 分包配置
对分包进行预加载
微信小程序的分包预加载是一种优化手段,可以提高小程序的加载速度和性能。以下是进行分包预加载的步骤:
- 首先,在微信小程序的项目配置文件
app.json中,设置preloadRule字段来定义需要预加载的分包。可以使用正则表达式来匹配分包的路径,例如:
{
"preloadRule": {
"pages/subpackageA/": true,
"pages/subpackageB/": true
}
}
上述代码将会预加载 pages/subpackageA/ 和 pages/subpackageB/ 这两个分包。
- 接下来,在小程序的入口页面中,通过
wx.loadSubpackage()方法进行分包的预加载。例如:
wx.loadSubpackage({
name: 'subpackageA',
success: function(res) {
// 分包预加载成功后的回调
},
fail: function(res) {
// 分包预加载失败后的回调
}
})
上述代码将会预加载名为 subpackageA 的分包。在 success 回调中可以进行相关逻辑处理,例如跳转到分包页面。
通过以上步骤,你可以实现微信小程序的分包预加载,提高用户体验和性能。注意,为了避免过多的预加载影响页面加载速度,建议仅对关键的分包进行预加载。
合理使用缓存
- 尽量减少HTTP请求的次数:拿到数据setStorage缓存起来,下次需要使用相同数据时先getStorage,没有再发起网络请求,
- 如果使用的是uniapp/Vue2框架,则可以使用Vuex作为存储的store;
- 组件内缓存状态数据,在uniapp/Vue2中合理使用computed;
@小程序的微信授权流程
- 什么是小程序的微信授权流程?说人话:用微信账号登录自家服务器
- 在小程序端wx.login()得到登录码code
- 小程序请求自家的登录接口,携带登录码code
- 自家服务器请求微信服务器,使用appid+appSecret+code换回session_key与openid
- 自家服务器将session_key与openid重新换算为自家的登录信息(如token)
- 小程序在后续请求自家服务器的过程中都携带该token,自家服务器就知道小程序端已经登录过了 参考链接
@微信支付流程
- 用户点击下单;
- 调用
wx.login获取临时登录凭证code,发送到后端换取openId; - 将
商品信息(id、数量等)+ 用户的openId一并通过购买接口发送服务端; - 服务器综合以上信息
生成订单+签名(根据微信支付SDK要求生成),向微信支付后台发送支付请求,获取其返回的预付款订单id(prepay_id),同时再次根据微信支付SDK要求生成预付款订单签名,二者一并响应给小程序端; - 小程序端调用
wx.requestPayment()发起微信支付,此时微信内部的支付窗口被唤醒,用户输入支付密码或指纹; - 微信支付后台处理支付,将结果同时推送给小程序端和我们自己的服务端;
@多端打包流程
@微信小程序的发布流程
- 在uni-app端完成微信小程序的打包;
- 在微信开发者工具中将代码上传到微信公众平台,形成体验版;
- 测试人员根据扫描体验版二维码进行最后的测试工作;
- 测试通过后,点击提交审核,进入审核流程,通常24小时就能出结果;
- 审核通过后,用户即可通过维系小程序搜索到我们的小程序;同时我们还可以在微信公众平台生成小程序的葵花码,交给推广人员进行推广;