记录小程序开发中的一些坑和技巧

URI编码问题

在进行GET提交参数的时候,如果参数中有中文,记得要进行URI编码,encodeURI(参数) 如果不进行编码,ios设备正常。安卓设备会可能出现获取不到参数的情况。

新特性支持情况

有些新特性可能会只支持高版本,对于低版本不支持,开发的时候要看清楚官方文档。例如:icon组件的size属性从2.4.0基础库开始支持rpx属性。如果用户客户端基础库小于这个版本,就会出现无法显示的问题,从而影响业务。

封装请求

开发开始之前最好根据业务封装请求函数,这样会事半功倍。

建立工具函数库

把一些常用的函数,例如格式化时间、封装的请求、去空格等等。放到util.js里面做为工具类库。

使用WXS

WXS是小程序脚本语言,功能类似于Vue的过滤器。但是WXS的语法不全和js一样,具体看官方文档。

静态资源问题

把大部分静态资源放到云上(除非你有特殊需求),把tab图标放到本地项目。这样会大大节省小程序资源。但是网络不好的情况,会出现静态资源加载慢的情况。

RESTful 接口独立

把请求的接口路径进行独立,单独放到一个类似serve.js的文件里面,便于以后维护。把域名也独立出来。

分包加载

在一些大项目的时候,根据业务可以使用分包加载技术。即把一些公用的页面放到主包,把其他的业务页面放到各个分包中,然后在app.js里面设置分包预加载。这样做可以节省网络开销,更有利于用户体验。但是,目前分包预加载只适用在app.js中配置,没有API接口。

rpx转px

在某些场景中不能使用rpx,比如在使用小程序动画功能的时候,并不支持rpx,只能输入固定的px值,这就对屏幕适配很不友好了。下面我贴出我自用的rpx转px函数:

1
2
3
4
const rpxToPx = rpx => {
let rpx1 = parseInt(rpx);
return Math.floor(rpx1 / 750 * wx.getSystemInfoSync().windowWidth)
}