赞
踩
分包就是指将一个完整的小项目程序,按照需求划分为不同的子包,在构建时通过打包成不同的分包,用户使用时按需加载。
对小程序分包的好处,简而易见,当我们首次打开小程序时下载时间变短,多团队共同开发可以分模块的解耦协作。
默认情况下,微信小程序项目中将所有的页面和资源打包到一起,这样会使整个项目体积过大,影响小程序首次启动的下载时间和用户的体验。
分包后,小程序项目由一个主包和多个分包组成。
主包,一般指只包含项目的 启动页面 或 TabBar 页面,以及所有分包都需要的一些公共资源app.json,app.wxss,js脚本和.wms脚本。
分包,只包含和当前分包有关的页面和私有资源。
分包前后的项目对比图:
小程序启动时,会默认下载主包并且启动主包内页面。当用户进入分包内的某个页面时,客户端会把对应的分包下载下来,下载完成后再进行展示。
分包后的体积限制:整个小程序的所有分包大小不超过 16MB,单个分包和主包大小不能超过 2MB。
可以在app.json中进行对分包的相关配置,格式如下:
{ "pages":[ // 主包的所有页面 "pages/index", "pages/logs" ], // 通过 subpackages 节点,声明分包的结构 "subpackages":[ { // 指定分包的根目录 "root": "pkg1", // 指定分包的别名 "name": "packageA", // 指定当前分包的页面存放的相对路径 "pages":[ "pages/cat", "pages/dog" ] },{ // 第二个分包的根目录 "root": "pkg2", "name": "packageB", "pages":[ "pages/apple", "pages/banana" ] } ] }
独立分包本质上也是分包,只不过它比较特殊,可以独立于主包和其他分包而单独运行。
独立分包相较于普通分包的区别是,独立分包不需要依赖于主包才能运行,而普通分包必须依赖于主包才能运行。
独立分包的配置方式,就是在普通分包 subpackages 中添加 一个 independent 属性,将其设置为true即可。
{ "pages":[ // 主包的所有页面 "pages/index", "pages/logs" ], // 通过 subpackages 节点,声明分包的结构 "subpackages":[ { // 指定分包的根目录 "root": "pkg1", // 指定分包的别名 "name": "packageA", // 指定当前分包的页面存放的相对路径 "pages":[ "pages/cat", "pages/dog" ], "independent":true },{ // 第二个分包的根目录 "root": "pkg2", "name": "packageB", "pages":[ "pages/apple", "pages/banana" ] } ] }
独立分包和普通分包以及主包之间,是相互隔绝的,不能相互引用彼此的资源!
分包预下载指的是:在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面时的启动速度。
预下载分包的行为,会在进入指定的页面时触发.
在 app.json 中,使用 preloadRule 节点定义分包的预下载规则.
{
// 配置分包的预下载规则
"preloadRule":{
// 进入哪些页面触发分包的预下载
"pages/contact/contact":{
// network 表示在指定的网络模式下进行预下载
// all 表示不限网络 , wife 表示限制网络
"network": "all",
// packages 指明进入页面后,需要预下载哪些分包
"packages":["pkg1"]
}
}
}
对了,分包预下载的大小也是限制在2MB
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。