面试时,如果是小程序相关的,比较大的概率会问怎么优化小程序?最近重新看一遍官网,把官网性能相关的部分做了以下整理
1、官网性能相关的文档
https://developers.weixin.qq.com/miniprogram/dev/framework/performance/
2、有频繁用户交互的效果在小程序上,采用wxs减少通信的次数
https://developers.weixin.qq.com/miniprogram/dev/framework/view/interactive-animation.html
3、从小程序基础库 2.9.0 开始,用于animate代替旧的 wx.createAnimation 。它具有更好的性能和更可控的接口。
查看https://developers.weixin.qq.com/miniprogram/dev/framework/view/animation.html 关键帧动画部分
4、连续使用 setData 来改变界面的方法也可以达到动画的效果。这样可以任意地改变界面,但通常会产生较大的延迟或卡顿,甚至导致小程序僵死。此时可以通过将页面的 setData 改为 自定义组件 中的 setData 来提升性能。
查看https://developers.weixin.qq.com/miniprogram/dev/framework/view/animation.html 高级的动画方式部分
5、利用初始渲染缓存提升用户体验
https://developers.weixin.qq.com/miniprogram/dev/framework/view/initial-rendering-cache.html
6、 wx.onMemoryWarning 监听内存告警事件,进行必要的内存清理
7、一些不用于界面渲染的 data 字段,采用纯数据字段,从小程序基础库版本 2.8.2 开始支持。
https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/pure-data.html
8、请只在需要的时候才在 page 中定义onPageScroll方法,不要定义空方法。以减少不必要的事件派发对渲染层-逻辑层通信的影响。 注意:请避免在 onPageScroll 中过于频繁的执行 setData
等引起逻辑层-渲染层通信的操作。尤其是每次传输大量数据,会影响通信耗时。
9、image 采用 lazy-load