更新说明:对文章排版以及内容格式做了调整。
更新时间:2022-05-04

今天的工作已经做完,在马上就进入五一假期的下班焦躁时刻,来个简单的微信小程序开发规范总结。

小程序应避免出现任何 JavaScript 异常

出现 JavaScript 异常可能导致小程序的交互无法进行下去,我们应当追求零异常,保证小程序的高鲁棒性和高可用性,相信这一点一般情况下都不会出现,需要注意的是代码测试中多场景的试错。

合理控制图片的大小

图片太大会增加下载时间和内存的消耗,应根据显示区域大小合理控制图片大小。
一般情况下图片较大的,我们应该都会选择直接放在服务器上,直接拿到地址,但是官方说这样读取的图片:存在网络图片资源未开启 HTTP 缓存控制,这是个什么意思,我也未完全弄懂。

小程序所有请求应响应正常

请求失败可能导致小程序的交互无法进行下去,应当保证所有请求都能成功。然而,请求成功只是第一步,还可能存在的问题就是请求的耗时太长、存在短时间内发起太多的请求这样的情况。

避免setData的数据过大且避免setData的调用过于频繁。

由于小程序运行逻辑线程与渲染线程之上,setData的调用会把数据从逻辑层传到渲染层,数据太大会增加通信时间.
setData接口的调用涉及逻辑层与渲染层间的线程通过,通信过于频繁可能导致处理队列阻塞,界面渲染不及时而导致卡顿,应避免无用的频繁调用.

避免将未绑定在 WXML 的变量传入 setData

setData操作会引起框架处理一些渲染界面相关的工作,一个未绑定的变量意味着与界面渲染无关,传入setData会造成不必要的性能消耗。
这一条我想是很多开发人员在初次接触小程序开发的时候都会犯的一个错误吧。因为刚开始的时候由于这种setData的语法,让我们忘了还有全局变量的使用,于是会经常出现使用Page中定义的data做中间过渡。

wxss 覆盖率较高,较少或没有引入未被使用的样式

我们应该按需引入 wxss 资源,如果小程序中存在大量未使用的样式,会增加小程序包体积大小,从而在一定程度上影响加载速度。
这个也是比较常见的一种不规范,写了很多CSS样式,很多不用的就留来了代码里面,越来越多,所以在编写代码过程中,尽量去对每一行代码(特别是自己写的)了如指掌。

避免首屏时间太长的情况

首屏时间是指用户开始看到第一屏的内容的时间,首屏时间太长会导致用户长时间看到的都是白屏,会一直等待有意义的内容展示出来。出现这一情况,应仔细检查这个过程都有哪个操作,一般来说,可能是请求数据的时间太长,或者是一次渲染的数据太大导致渲染时间太长。

这些东西是我感觉比较常见且容易修改的,其它还存在一些规范,不妨打开微信开发者工具,点击Audits,对你写的代码进行一个测试,测试结果会让你很好的处理自己的代码。
That’s really cool!