W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
基礎(chǔ)庫 3.60.2 及以上版本開始支持。開發(fā)者工具請(qǐng)使用 2.2.9 及以上版本,可點(diǎn)此下載
TIPS:
1.小游戲不支持獨(dú)立分包。
2.目前暫不支持在獨(dú)立分包中使用動(dòng)態(tài)庫。
假設(shè)小程序目錄結(jié)構(gòu)如下:
├── app.js
├── app.json
├── app.css
├── moduleA
│ └── pages
│ ├── history
│ └── search
├── moduleB
│ └── pages
│ ├── counter
│ └── goods
├── pages
│ ├── index
│ └── logs
└── utils
開發(fā)者通過在 app.json 的 subPackages 字段中對(duì)應(yīng)的分包配置項(xiàng)中定義 independent 字段聲明對(duì)應(yīng)分包為獨(dú)立分包。
{
"pages": [
"pages/index",
"pages/logs"
],
"subPackages": [
{
"root": "moduleA",
"pages": [
"pages/history",
"pages/search"
]
},
{
"root": "moduleB",
"pages": [
"pages/counter",
"pages/goods"
],
"independent": true
}
]
}
限制
獨(dú)立分包屬于分包的一種。普通分包的所有限制都對(duì)獨(dú)立分包有效。獨(dú)立分包中自定義組件的處理方式同普通分包。
此外,使用獨(dú)立分包時(shí)要注意:
注意事項(xiàng)
(1)關(guān)于 getApp
與普通分包不同,獨(dú)立分包運(yùn)行時(shí),App并不一定被注冊(cè),因此getApp也不一定可以獲得App對(duì)象:
為了在獨(dú)立分包中滿足這一需求,基礎(chǔ)庫3.60.2版本開始getApp支持[allowDefault]參數(shù),在App未定義時(shí)返回一個(gè)默認(rèn)實(shí)現(xiàn)。當(dāng)主包加載,App被注冊(cè)時(shí),默認(rèn)實(shí)現(xiàn)中定義的屬性會(huì)被覆蓋合并到真正的App中。
代碼示例
const app = getApp({allowDefault: true}); // {}
app.data = 456;
app.global = {};
App({
data: 123,
from: 'swan'
});
console.log(getApp()); // {global: {}, data: 456, from: 'swan'}
(2)關(guān)于 App 生命周期
當(dāng)從獨(dú)立分包啟動(dòng)小程序時(shí),主包中 App 的 onLaunch 和首次 onShow 會(huì)在從獨(dú)立分包頁面首次進(jìn)入主包或其他普通分包頁面時(shí)調(diào)用;由于獨(dú)立分包中無法定義 App,小程序生命周期的監(jiān)聽可以使用 swan.onAppShow, swan.onAppHide 完成。App 上的其它事件可以使用 swan.onError,swan.onPageNotFound 監(jiān)聽。
低版本兼容:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: