基础加强
使用npm包
目前小程序已经支持使用npm安装第三方程序,从而提高开发效率,使用npm包由如下三个限制
- 不支持依赖于
node.js内置库的包 - 不支持依赖于
浏览器内置对象的包 - 不支持依赖于
C++插件的包
Vant Weapp
安装vant组件库
三步
- 通过npm安装
- 构建npm包
- 修改app.json
详细步骤参考vant官方文档
https://youzan.github.io/vant-weapp/#/quickstart#an-zhuang
定制全局主题样式
Vant Weapp使用CSS变量来实现定制主题,关于CSS变量的基本用法,参考mdn文档
https://develop.mozilla.org/zh-CN/docs/Web/CSS/Using_CSS_custom_properties
API Promise优化
基于回调函数的异步API的缺点
默认情况下,小程序官方提供的异步API都是基于回调函数实现的,容易造成回调地狱问题,代码可读性,维护性差。
API Promise化,指的是通过额外的配置,将官方提供的基于回调函数的API,升级改造为基于Promise的异步API,从而提高代码可读性
实现API Promise化
实现API Promise化主要依赖于miniprogram-api-promise这个第三方的npm包,安装使用步骤如下
1 | npm install --save miniprogram-api-promise@1.0.4 |
1 | // 在小程序入口文件app.js 只需调用一次promisifyAll()方法 |
调用
1 | <van-button type="primary" bindtap="getInfo">按钮</van-button> |
全局数据共享
全局数据共享(状态管理)是为了解决组件之间数据共享的问题
开发中常用的全局数据共享方案有:Vuex``Redux``MobX

小程序的全局数据共享方案
mobx-miniprogram用来创建Store实例对象mobx-miniprogram-bindings用来把Store中的共享数据或方法,绑定到组件或页面中使用
MobX
安装MOBX相关包
1 | npm install --save mobx-miniprogram@4.13.2 mobx-miniprogram-bindings@1.2.1 |
注意MoBX相关的包安装完毕后,要删除miniprogram_npm目录,然后重新构建npm
创建MoBX的Store实例
1 | // 在这个 JS 文件中,专门来创建 Store 的实例对象 |
将Store中成员绑定到页面中
1 | // 页面js文件 |
在页面上使用Store中成员
1 | // wxml页面 |
将Store成员绑定到组件中
在组件中使用Store中成员
分包
基础概念
分包是指把一个完整的小程序项目,按照需求划分为不同的子包,构建时打包成不同的分包,用户在使用时时按需进行加载
好处
- 可以优化小程序首次启动的下载时间
- 在多团队共同开发时可以更好的解耦协作
分包前项目构成
分包前,小程序项目中所有的页面和资源都被打包到一起,导致整个项目体积过大

分包后项目构成
分包后,小程序项目由一个主包和多个分包组成
- 主包:一般只包含项目的启动页面或TabBar页面,以及所有分包都需要用的公共资源
- 分包:只包含和当前分包有关的页面和私有资源

分包加载规则
- 小程序启动时,默认下载主包并启动主包内页面,TabBar页面需要放到主包中
- 当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后在进行提示,非tabBar页面可以按照功能的不同,划分为不同的分包,按需下载
分包的体积限制
- 整个小程序所有分包大小不超过16M(主包+所有分包)
- 单个分包/主包大小不能超过2M
使用分包

打包原则
- 小程序会按
subpackages的配置进行分包,subpackages之外的目录将被打包到主包中 - 主包也可以有自己的
pages(即最外层的pages字段) - tabBar页面必须在主包内
- 分包之间不能互相嵌套
使用原则
- 主包无法引用分包内的私有资源
- 分包之间不能互相引用私有资源
- 分包可以引用主包内的公共资源
独立分包
独立分包本质上也是分包,只不过它比较特殊,可以独立于主包和其他分包单独运行
开发者可以按需将具有一定功能的独立性的页面配置到独立分包中,一个小层序可以有多个独立分包

引用原则
独立分包和普通分包以及主包之间,三者时相互隔绝,不能互相引用
特别注意,独立分包不能引用主包内公共资源
分包预下载
在进入小程序某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面的启动速度
配置
在app.json中,使用preloadRule节点定义分包的预下载规则
1 | "preloadRule": { |
自定义tabBar
三大步
- 配置信息
- 添加tabBar代码文件
- 缩写tabBar代码
详细步骤查看小程序官方文档
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html




