request封装
目录: /utils/base.js
1 | import wepy from 'wepy' |
在 base.js 中封装请求,在api文件中则可以直接拿来使用
目录: utils/api.js
1 | import base from '@/utils/base' |
统一管理维护所有的接口api, 在页面中,直接使用具体的api
1 | /* |
Mixins
提出公共方法,方便全局调用
1 | /* |
使用mixins ,在页面中引入,config中声明,即可在页面使用 this 调用
1 | import commonMixin from '@/mixins/common' |
常量配置数据
前端配置数据抽离出来单独放,便于维护。
1 | /** |
分包
小程序未超过2M大小,无需分包。超过2M,则采用分包,单包不超过2M,总计不超过16M。
分享
普通分享略过。
带shareTicket的分享,且需要记录分享群的信息时:
1 | /* |
由分享进入小程序某个页面,需先判断缓存中是否存在 token , 若不存在 token , 则先请求登录接口,到后端换取 token , 再请求其他api 。
1 | //某分享链接进入的页面 |
formid (已废弃)
小程序给用户发送模板消息需要消耗 fromID, 新版的则是授权。这里记录一下fromID的处理。
发送一条模板消息需耗费一个 fromID
fromID的存储应该是用户本次使用完小程序,然后把收集到的fromID一次性发送到后端
1 | /* |
当用户的表单提交行为产生了 fromID 时, 统一进行本地存储,在用户沙雕该小程序时再统一提交全部fromid
小程序登录广播
登录广播可以解决很多同步问题,在app内,执行登录获取token,在token还未拿到时,首页的接口不能去执行,需要等待后端返回token后才可执行,这里有两种方式实现:
method1: async/await
app内会执行登录,首页也onload内判断token是否存在,不存在则重新登录(同步),在登录成功后在执行业务。
1 | // APP |
以上方法在有大量新用户分享进入小程序的场景下很实用,但是不存在token的用户(新用户)通常会请求两次登录。优化如下:利用广播,广播页面告知APP内登录是否成功,成功后各页面再去执行业务。
code address: https://github.com/fanghongliang/Tools/blob/master/broadcast.js
小程序跳转路径携带对象参数Object
小程序在跳转页面路径时会把query参数String化,也不能携带对象参数,当然我们可以通过localStorage、globalData来解决参数携带问题。但当不确定的对象参数需要传递到下一个页面时,可以使用对象参数传递,使用encodeURIComponent封装URL即可解决
code address: https://github.com/fanghongliang/Tools/blob/master/urlHelper.js
小程序使用第三方UI库
当需要使用第三方UI库时,优先考虑第三方库的适配性。这里wepy 版本为 1.7.3 ,使用kai-ui 采坑经历如下:
kai-ui: https://www.npmjs.com/package/kai-ui/v/1.2.2
npm引入之后要确保项目 /dist/npm 目录下,存在 kai-ui 文件夹,如没有,删除dist目录,重新编译。
步骤一:在root目录app文件内,style中引入 @import '../node_modules/kai-ui/src/less/index';
步骤二:在页面中直接引入你需要的组件,
import loading from 'kai-ui/Loading'
components = {
loading,
}
之后就可以使用 [Error] TypeError: Cannot read property 'dir' of null
报错! 解决方法: 直接引用,不要在 components 内注册,亲测有效(坑)