普通分包和独立分包的区别
- 当小程序从普通的分包页面启动的时候,首先需要下载主包
- 独立分包是不依赖看于主包就可以运行,提升分包的执行速度,一个小程序可以有多个独立分包。
独立分包属于分包的一种。普通分包的所有限制都对独立分包有效。独立分包中插件、自定义组件的处理方式同普通分包。
限制:
1.独立分包中不能依赖主包和其他分包中的内容,包括 js 文件、template、wxss、自定义组件、插件等(使用 分包异步化 时 js 文件、自定义组件、插件不受此条限制)
2.主包中的 app.wxss 对独立分包无效,应避免在独立分包页面中使用 app.wxss 中的样式;
3.App 只能在主包内定义,独立分包中不能定义 App,会造成无法预期的行为;
4.独立分包中暂时不支持使用插件。
介绍
分包以后单独最大不能超过 2m;整个小程序可以达到 20M
- 声明 subpackages 后,将按 subpackages 配置路径进行打包。
subpackage 的根目录不能是另外一个 subpackage 内的子目录。
subpackages 配置路径外的目录将被打包到 app(主包) 中。
app(主包)也可以有自己的 pages(即最外层的 pages 字段)
tabBar 页面必须在 app(主包)内。 - root:分包根目录;
- name:分包别名,分包预下载时可以使用;
- pages:分包页面路径,相对于分包根目录;
- independent:分包是否是独立分包
subpackages: [
// 应用分包
{
root: 'appPackage',
name: 'appPackage',
pages: [
'pages/life/index',
],
// "independent": true
},
// 社区功能
{
root: 'communityCommonPackage',
name: 'communityCommonPackage',
pages: [
'pages/ownerAudit/ownerAuditDetail',
'pages/ownerAudit/index', // 业主审核
],
}
],
主包与分包之间的跳转
-
主包跳分包
- 注意:跳转的路径要带上分包里配置的 root 这一级(所有的相对路径全部写上),不然它找不到路径就会报错
<navigator url="../../appPackage/pages/life/index">跳转生活圈</navigator>
-
分包跳转到主包
-
wx.switchTab(Object object)
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,路径后不能带参数。
此方法跳转的页面必须是在 tabBar 定义过的页面 -
wx.reLaunch(Object object)
关闭所有页面,打开到应用内的某个页面,路径后面可带参数。
-
分包
<navigator open-type="switchTab" url="/pages/index/index"> 去首页 </navigator
-