基础库 3.60.2 及以上版本开始支持。开发者工具请使用 2.2.9 及以上版本,可点此下载
创新互联是一家集网站建设,平武企业网站建设,平武品牌网站建设,网站定制,平武网站建设报价,网络营销,网络优化,平武网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行。从独立分包中页面进入小程序时,不需要下载主包。当用户进入普通分包或主包内页面时,主包才会被下载。
开发者可以按需将某些具有一定功能独立性的页面配置到独立分包中。当小程序从普通的分包页面启动时,需要首先下载主包;而独立分包不依赖主包即可运行,可以很大程度上提升分包页面的启动速度。
一个小程序中可以有多个独立分包。
TIPS:
- 小游戏不支持独立分包。
- 目前暂不支持在独立分包中使用动态库。
假设小程序目录结构如下:
├── app.js
├── app.json
├── app.css
├── moduleA
│ └── pages
│ ├── history
│ └── search
├── moduleB
│ └── pages
│ ├── counter
│ └── goods
├── pages
│ ├── index
│ └── logs
└── utils
开发者通过在app.json
的subPackages
字段中对应的分包配置项中定义independent
字段声明对应分包为独立分包。
{
"pages": [
"pages/index",
"pages/logs"
],
"subPackages": [
{
"root": "moduleA",
"pages": [
"pages/history",
"pages/search"
]
},
{
"root": "moduleB",
"pages": [
"pages/counter",
"pages/goods"
],
"independent": true
}
]
}
限制
独立分包属于分包的一种。普通分包的所有限制都对独立分包有效。独立分包中自定义组件的处理方式同普通分包。
此外,使用独立分包时要注意:
app.css
对独立分包无效,应避免在独立分包页面中使用app.css
中的样式;注意事项
(1)关于 getApp
与普通分包不同,独立分包运行时,App
并不一定被注册,因此getApp
也不一定可以获得App
对象:
App
也不存在,此时调用getApp
获取到的是undefined
。 当用户进入普通分包或主包内页面时,主包才会被下载,App
才会被注册;getApp
可以获取到真正的 App 实例。App
方法实现独立分包和小程序其它部分的全局变量共享。为了在独立分包中满足这一需求,基础库3.60.2
版本开始getApp
支持[allowDefault]
参数,在App
未定义时返回一个默认实现。当主包加载,App
被注册时,默认实现中定义的属性会被覆盖合并到真正的App
中。
代码示例
// {}
const app = getApp({allowDefault: true});
app.data = 456;
app.global = {};
App({
data: 123,
from: 'swan'
});
// {global: {}, data: 456, from: 'swan'}
console.log(getApp());
(2)关于 App 生命周期
当从独立分包启动小程序时,主包中 App 的onLaunch
和首次onShow
会在从独立分包页面首次进入主包或其他普通分包页面时调用;
由于独立分包中无法定义 App,小程序生命周期的监听可以使用swan.onAppShow
,swan.onAppHide
完成。App 上的其它事件可以使用swan.onError
,swan.onPageNotFound
监听。
低版本兼容:
3.60.2
的基础库版本运行时,独立分包视为普通分包处理,不具备独立运行的特性;
本文标题:创新互联百度小程序教程:独立分包
网页网址:http://www.shufengxianlan.com/qtweb/news28/155728.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联