小程序分包加載實現代碼包總上限8M


1. 背景

  2018年6月15日周五23點43分,小程序發布官方公告:小程序分包加載功能升級,新增性能監控,意味着小程序的代碼包總上限可提升至8M,但是分包的大小還是不超過2M。即可以使用1個主包,多個分包的方式達到8M的總的代碼包大小。這對於廣大開發者來說無疑是重大喜訊,

 

2. 分包加載流程以及目的:

  一般情況下,小程序的代碼將打包在一起,在小程序啟動時一次性下載完成。

  采用分包時,小程序的代碼包可以被划分為幾個:一個是“主包”,包含小程序啟動時會馬上打開的頁面代碼和相關資源;其余是“分包”,包含其余的代碼和資源。

  這樣,小程序啟動時,只需要先將主包下載完成,就可以立刻啟動小程序。這樣就可以顯著降低小程序代碼包的下載時間。

 

 3. 那么究竟如何利用代碼實現呢?

 

第一種:新項目開發

配置方法

假設支持分包的小程序目錄結構如下:

├── app.js
├── app.json
├── app.wxss
├── packageA
│   └── pages
│       ├── cat
│       └── dog
├── packageB
│   └── pages
│       ├── apple
│       └── banana
├── pages
│   ├── index
│   └── logs
└── utils

開發者通過在 app.json subpackages 字段聲明項目分包結構:

{ "pages":[ "pages/index", "pages/logs" ], "subpackages": [ { "root": "packageA", "pages": [ "pages/cat", "pages/dog" ] }, { "root": "packageB", "name": "pack2", "pages": [ "pages/apple", "pages/banana" ] } ] }
這里詳情可以見官方文檔 https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/basic.html
官方demo案例:https://res.wx.qq.com/wxdoc/dist/assets/media/demo-subpackages.b42a3adb.zip

第二種: 現有項目對獨立項目進行分包


  如下圖所示,我這里的兩個子目錄tick和rain就構成了兩個分包,每個分包下都可以有自己的頁面代碼(資源文件建議放cdn)。pages里的路徑就是小程序的主包,在小程序啟動時,“tick”和“rain”兩個子目錄的內容不會馬上被下載下來,只有pages主包里的路徑內容才會被下載。利用這個特性就可以顯著降低初始啟動時的下載時間。

 

 

4. 注意幾點:

  1. 不要引用同級分包的內容包括js,wxss

  2. tabBar不能分包

  3. 每個分包/主包不要超過2M

 

在這里先說明這只是個人看法,不喜勿噴,歡迎大家前來探討。

————————————————————————————————————————————————

版權歸本網站的作者所有,轉載請注明出處,謝謝大家。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM