一:在小程序中使用npm
不支持依赖node.js内置库的包
不支持依赖于浏览器内置对象的包
不支持c++插件的包
在终端里执行npm init -y
!注意:每次下载一个npm包后都需要重新构建npm
点击工具——>构建npm
二:api的promise化
1:实现API的promise化
在小程序中主要通过miniprogram-api-promise这个第三方的npm包实现
将wx.方法函数挂载到wx.p空对象上
例调用promise化的api,
网络请求
三:全局数据共享
1:小程序中的全局共享方案:Mobx
1:mobx-miniprogram
用来创建Store实例对象,Store(用来存放共享的数据)
2:mobx-miniprogram-bindings
把Store中的共享的数据或方法,绑定到组件或页面中使用
npm i --save mobx-miniprogram@4.12.2 mobx-miniprogram-bindings@1.2.1
2:创建Mobx的Store实例
3:将Store中的成员绑定到页面中
4:将Store中的成员绑定到组件中
四:分包
1:什么是分包
把一个完整的小程序项目。按照需求划分为不同的子包在构建时打包成不同的分包,用户在使用时按需进行加载
可以优化小程序首次启动的下载时间
在多团对共同开发时可以更好的解耦协作
2:分包后的项目构成
一个小程序由一个主包和多个分包构成
主包:一般含有项目的启动页或者TabBar页面,以及所有分包用的公共资源
分包:包含和当前分包有关的页面和私有的资源
3:分包的加载规则
1:小程序启动时,默认会下载主包并启动主包内页面
tabBar页面需要放到主包中
2:当用户进入分包的页面时客户端会把对应的分包下载下来在进行展示
非tabBar页面可以按照不同的功能需求划分为不同的分包,进行按需下载
注意:整个小程序所有的分包的大小不能超过16MB(主包+所有分包),单个分包/主包大小不能超过2MB
4:使用分包
配置方法
|------ app.js
|------ app.json
|------ app.wxss
|------ pages //主包的所有页面
| |------index
| |------logs
|------packageA //第一个分包
| |------pages //第一个分包的所有页面
| |------cat
| |------dog
|------packageB //第二个分包
| |------pages //第二个分包的所有页面
| |------apple
| |------banana
|------utils
在app.json中分包
看分包大小
5:原则
1打包原则
1.小程序会按照subpackages的配置进行分包,subpackages之外的目录将被打包到主包中
2.主包也可以有自己的pages(既最外层的pages)
3.tabBar页面必须在主包中
4.分包之间不能互相嵌套
2引用原则
主包无法引用分包内的私有资源
分包之间不能相互引用私有资源
分包可以引用主包公共资源
6:独立分包
独立分包本质上也是分包,只不过它可以独立与主包和其他分包独立运行
独立分包和普通分包的区别
1.普通分包必须依赖于主包才能运行
2.独立分包可以在不下载主包的情况下独立运行
独立分包的应用场景
具有某些一定功能独立性的页面
可以很大程度上提升分包页面的启动速度
一个小程序中可以有多个独立分包
7:独立分包的配置
|------ app.js
|------ app.json
|------ app.wxss
|------ pages //主包的所有页面
| |------index
| |------logs
|------packageA //普通分包
| |------pages //普通分包的所有页面
| |------cat
| |------dog
|------moduleB //独立
| |------pages
| |------pear
| |------pineapple
|------utils
在普通分包在及加上 "independent": true就可以将普通分包变为独立分包
引用原则
独立分包和普通分包和主包之间,是相互隔绝的,不能相互引用彼此的资源
主包为无法引用独立分包内的私有资源
独立分包之间,不能相互引用私有资源
独立分包和普通分包之间,不能相互引用私有资源
独立分包也不能引用主包的公共资源
8:分包预下载
在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升后续分包页面时的启动速度
配置分包预下载:
预下载分包行为,会在进入指定的页面时触发,在app.json中,使用preloadRule节点定义分包预下载规则