新聞中心
- 獨立分包
- 配置方法
- 配置方法
獨立分包
基礎庫 3.60.2 及以上版本開始支持。開發(fā)者工具請使用 2.2.9 及以上版本,可點此下載
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,平武企業(yè)網(wǎng)站建設,平武品牌網(wǎng)站建設,網(wǎng)站定制,平武網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,平武網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
-
獨立分包是小程序中一種特殊類型的分包,可以獨立于主包和其他分包運行。從獨立分包中頁面進入小程序時,不需要下載主包。當用戶進入普通分包或主包內(nèi)頁面時,主包才會被下載。
-
開發(fā)者可以按需將某些具有一定功能獨立性的頁面配置到獨立分包中。當小程序從普通的分包頁面啟動時,需要首先下載主包;而獨立分包不依賴主包即可運行,可以很大程度上提升分包頁面的啟動速度。
-
一個小程序中可以有多個獨立分包。
TIPS:
- 小游戲不支持獨立分包。
- 目前暫不支持在獨立分包中使用動態(tài)庫。
配置方法
假設小程序目錄結構如下:
├── app.js├── app.json├── app.css├── moduleA│ └── pages│ ├── history│ └── search├── moduleB│ └── pages│ ├── counter│ └── goods├── pages│ ├── index│ └── logs└── utils
開發(fā)者通過在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}]}
限制
獨立分包屬于分包的一種。普通分包的所有限制都對獨立分包有效。獨立分包中自定義組件的處理方式同普通分包。
此外,使用獨立分包時要注意:
- 獨立分包中不能依賴主包和其他分包中的內(nèi)容,包括 js 文件、template、css、自定義組件等。主包中的
app.css對獨立分包無效,應避免在獨立分包頁面中使用app.css中的樣式; - App 只能在主包內(nèi)定義,獨立分包中不能定義 App,會造成無法預期的行為。
注意事項
(1)關于 getApp
與普通分包不同,獨立分包運行時,App并不一定被注冊,因此getApp也不一定可以獲得App對象:
- 當用戶從獨立分包頁面啟動小程序時,主包是不存在的,那么
App也不存在,此時調(diào)用getApp獲取到的是undefined。 當用戶進入普通分包或主包內(nèi)頁面時,主包才會被下載,App才會被注冊; - 當用戶是從普通分包或主包內(nèi)頁面跳轉(zhuǎn)到獨立分包頁面時,主包已經(jīng)存在,此時調(diào)用
getApp可以獲取到真正的 App 實例。
由于這一限制,開發(fā)者無法通過App方法實現(xiàn)獨立分包和小程序其它部分的全局變量共享。
為了在獨立分包中滿足這一需求,基礎庫3.60.2版本開始getApp支持[allowDefault]參數(shù),在App未定義時返回一個默認實現(xiàn)。當主包加載,App被注冊時,默認實現(xiàn)中定義的屬性會被覆蓋合并到真正的App中。
代碼示例
- 獨立分包中
// {}const app = getApp({allowDefault: true});app.data = 456;app.global = {};
- app.js 中
App({data: 123,from: 'swan'});// {global: {}, data: 456, from: 'swan'}console.log(getApp());
(2)關于 App 生命周期
當從獨立分包啟動小程序時,主包中 App 的onLaunch和首次onShow會在從獨立分包頁面首次進入主包或其他普通分包頁面時調(diào)用;
由于獨立分包中無法定義 App,小程序生命周期的監(jiān)聽可以使用swan.onAppShow,swan.onAppHide完成。App 上的其它事件可以使用swan.onError,swan.onPageNotFound監(jiān)聽。
低版本兼容:
- 在低于
3.60.2的基礎庫版本運行時,獨立分包視為普通分包處理,不具備獨立運行的特性; - 在兼容模式下,主包中的 app.css 可能會對獨立分包中的頁面產(chǎn)生影響,因此應避免在獨立分包頁面中使用 app.css 中的樣式。
分享名稱:創(chuàng)新互聯(lián)百度小程序教程:獨立分包
網(wǎng)址分享:http://www.dlmjj.cn/article/djjspde.html


咨詢
建站咨詢

