前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 ># 小程序的优化

# 小程序的优化

作者头像
九旬
发布2023-10-17 08:30:40
1520
发布2023-10-17 08:30:40
举报
文章被收录于专栏:九旬大爷

# 小程序的优化

双线程架构相关

  • setData 频繁操作(底层是因为双线程架构),可以使用 wx.nextTick 将多次操作延迟到下一次事件循环里
  • 不需要渲染的数据使用_或者直接挂在在 this 下,不要放在 data 中
  • 双线程原因,JS 在独立线程中,setTimeout/setInterval 将作用于全局,所以使用应注意 clear 掉

首屏加载相关

  • 图片懒加载和下拉刷新
  • 分包和预加载(在 onLoad 总发送 http 请求)
  • 骨架屏

代码相关

  • 减少代码包体积:开启代码压缩,善用缓存,减少 http 请求
  • 使用组件:将重复的功能进行统一的封装
  • 在频繁操作的地方使用防抖或节流,比如 onPageScoll
  • 封装重复逻辑,比如用 promise 封装 wx.request。

如何测试优化结果

  • 使用 audits (体验评分)工具,浏览器中对应 Proformance - 查看首屏加载时长 - 网络请求时长 - 通过给出的体验报告,去逐步进行优化。

# 遇到的问题,以及如何解决的。

页面栈爆栈

  • 小程序默认页面栈是 10 层,超出则会跳转失败。
  • 自己封装一个 router,每次跳转时判断一下,如果到了 9 层,在调转就使用 wx.redirectTo

异步问题

  • 很多的 API 都是异步的,比如 wx.request
  • 为了方便使用,将异步封装为 promise

wxss 编写问题

  • wxss 编写太原生
  • 使用 easy-less 或者 webpack 写 less 然后转换为 wxss

IphoneX 的适配

  • 适配下边框 20rpx
  • 通过判断设备类型来编写适配代码。

相机拍照后照片转 base64

代码语言:javascript
复制
let base64Img = wx.getFileSystemManager().readFileSync(temPath, "base64");

1

小程序自定义 Less

参考:在微信小程序中使用 less(最优方式)open in new window

小程序 wxml 属性如何折行

setting.json 中:

代码语言:javascript
复制
"files.associations": {
    "*.wxss": "css",
    "*.wxs": "javascript",
    "*.wxml": "html"
  },

"html.format.wrapAttributes": "force-aligned",

"[html]": {
	"editor.defaultFormatter": "HookyQR.beautify"
},

1 2 3 4 5 6 7 8 9 10 11 12

# 组件相关

自定义 navbar

参考:https://www.cnblogs.com/sese/p/9761713.html

小程序热更新

  • 参考:https://www.cnblogs.com/zjy850984598/p/11016748.html
  • 官方文档(getUpdateManager):https://developers.weixin.qq.com/miniprogram/dev/api/base/update/wx.getUpdateManager.html

# 其他

小程序和 Vue 的区别

  • 运行环境
  • 声明周期
  • 代码编写
  • 组件通讯
  • 对于特定的功能,小程序需要基础的支持

TypeScript 给你带来了什么?

  • 开发阶段的静态类型检测
  • 友好的阅读体验
  • 类,接口,泛型的提供
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 小程序的优化
    • # 遇到的问题,以及如何解决的。
      • # 组件相关
        • # 其他
        相关产品与服务
        云开发 CloudBase
        云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档