微信小程序开发避坑指南

从微信发布小程序以来,各大公司纷纷跟进都想从微信这个流量池里捞一杯羹。我司也不例外,我们整个前端团队这半年来基本上都是在开发小程序。前前后后也开发了四五个小程序了。总觉得要留下点什么,既是记录那些年我们踩过的坑,也是希望大家别再掉坑。
那些年我们踩过的坑
css样式不能引用本地图片资源,只能引用线上资源(background-image),引用本地图片资源只能用标签。
{{}}不能执行函数方法,{{}}只支持基本的简单运算和ES6拓展运算符。如价格格式化这种常用的处理,只能在js代码中处理好然后再模板中渲染。this.setData({ price: this.formatPrice(this.data.price) })
可以通过wxs模块解决{{}}中不能执行函数的问题。可以做到模拟vue.js中过滤器的功能。 价格:{{tools.formatPrice(price)}}// wxs模块var formatPrice = function (price){ price = price >> 0; return Number(price / 100).toFixed(2); }module.exports = { formatPrice }
小程序不支持分享链接到朋友圈,暂时的通用做法是生成保存有页面小程序码的图片到本地相册。又用户自行发朋友圈转发。前端可以利用canvas来实现,减轻服务端压力。但是会有图片锯齿不清晰的问题。建议预览图和保存到真机的图片采用不同的尺寸。保存在真机的图片按照750的宽度实现。相比于预览图要大一些,这样保存到手机的图片会清晰很多。
小程序布局采用rpx单位,UI稿按照750的宽度出图。可直接使用UI稿的尺寸。但是在某些机型上1rpx会无法显示。可以用H5的方式实现1px效果。
iphoneX吸底按钮的适配,可以用媒体查询获取wx.getSystemInfo获取机型。参考@media only screen and (device-width : 375px) and (device-height : 812px) and (-webkit-device-pixel-ratio : 3) { }
页面A -> 页面B,页面B的操作触发了页面A的数据更新。返回更新页面A的数据,通常有两种方式来实现(我司采用了方案二):在页面A监听onShow事件,在onShow事件触发时无脑更新页面数据。通过EventBus来实现跨页面通信。复杂组件的开发,省市区三级联动选择器的开发,获取微信地址库的地址的编码和业务采用的省市区编码对不上。页面路径的层级,最大不能超过10层。小程序小程序分包加载,微信对小程序包的大小有如下限制。整个小程序所有分包大小不超过 8M单个分包/主包大小不能超过 2M

猜你喜欢

转载自blog.csdn.net/seoandsem/article/details/88170305