欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序分包加載的實現(xiàn)代碼

 更新時間:2024年07月19日 09:52:47   作者:楊小楊@1128  
分包加載是一種小程序優(yōu)化技術,將小程序不同功能的代碼,分別打包成不同的子包,在構建時打包成不同的分包,用戶在使用時按需進行加載,在構建小程序分包項目時,構建會輸出一個或多個分包,這篇文章主要介紹了微信小程序---分包加載,需要的朋友可以參考下

一、分包加載

1. 什么是分包加載

什么是分包加載 ?

小程序的代碼通常是由許多頁面、組件以及資源等組成,隨著小程序功能的增加,代碼量也會逐漸增加,體積過大就會導致用戶打開速度變慢,影響用戶的使用體驗。

分包加載是一種小程序優(yōu)化技術。將小程序不同功能的代碼,分別打包成不同的子包,在構建時打包成不同的分包,用戶在使用時按需進行加載,在構建小程序分包項目時,構建會輸出一個或多個分包。每個使用分包小程序必定含有一個主包。每個分包可以包含多個頁面、組件、樣式和邏輯等。當小程序需要使用某個分包時,才會加載該分包中的代碼。

主包:包含默認啟動頁面 / TabBar 頁面 以及 所有分包都需用到公共資源的包

分包:根據(jù)開發(fā)者的配置進行劃分出來的子包

2、小程序分包后如何加載

在小程序啟動時,默認會下載主包并啟動主包內頁面,在用戶訪問分包內某個頁面時,微信客戶端才會把對應分包下載下來,下載完成后再進行展示。

目前小程序分包大小有以下限制:

  • 整個小程序所有分包大小不超過 20MB
  • 單個分包/主包大小不能超過 2MB

?? 注意事項

? 整個小程序所有分包大小可能會隨時調整,截止到目前整個小程序所有分包大小不超過 20M

二、分包的基本使用

知識點:

在進行分包加載之前,需要對小程序的業(yè)務邏輯進行分析,將代碼劃分成多個模塊。每個模塊應該有一個明確的功能,并與其他模塊之間有明確的依賴關系

需要按照功能拆分分包,并且每個分包都需要與其他包有依賴關系(可以通過 a 分包跳轉到 b 分包)

開發(fā)者在小程序的配置文件 app.json 中,通過 subPackages 或者 subpackages字段聲明項目分包結構。

每個分包需要指定 root 字段、name 字段和 pages 字段

root 字段指定了分包的根目錄,該目錄下的所有文件都會被打包成一個獨立的包name 字段為分包的名稱,用于在代碼中引用該分包pages 字段指定了該分包中包含的頁面,可以使用通配符 * 匹配多個頁面

{
  "subPackages": [
    {
      "root": "modules/goodModule",
      "name": "goodModule",
      "pages": [
        "pages/list/list",
        "pages/detail/detail"
      ]
    },
    {
      "root": "modules/marketModule",
      "name": "marketModule",
      "pages": [
        "pages/market/market"
      ]
    }
  ]
}

三、打包和引用原則(注意事項)

1、打包原則:

tabBar 頁面必須在主包內

最外層的 pages 字段,屬于主包的包含的頁面

按 subpackages 配置路徑進行打包,配置路徑外的目錄將被打包到主包中

分包之間不能相互嵌套,subpackage 的根目錄不能是另外一個 subpackage 內的子目錄

2、引用原則:

主包不可以引用分包的資源,但分包可以使用主包的公共資源

分包與分包之間資源無法相互引用, 分包異步化時不受此條限制

四、 獨立分包的配置

1、什么是獨立分包:

獨立分包:獨立分包是小程序中一種特殊類型的分包,可以獨立于主包和其他分包運行

從獨立分包中頁面進入小程序時,不需要下載主包,但是當用戶進入普通分包或主包內頁面時,主包才會被下載 !

開發(fā)者可以將功能相對獨立的頁面配置到獨立分包中,因為獨立分包不依賴主包即可運行,可以很大程度上提升分包頁面的啟動速度

如果是獨立分包,不需要下載主包,直接就能夠訪問,獨立分包是自己獨立運行的

而如果是其他分包,需要先下載主包,通過路徑訪問,才能加載對應路徑的分包

?? 注意事項:

獨立分包中不能依賴主包和其他分包中的資源

主包中的 app.wxss 對獨立分包無效

App 只能在主包內定義,獨立分包中不能定義 App,會造成無法預期的行為

2、如何配置獨立分包:

開發(fā)者在app.json中找到需要配置為獨立分包的subpackages字段

在該字段配置項中定義independent字段聲明對應分包為獨立分包。

落地代碼:

{
  "subPackages": [
    {
      "root": "modules/goodModule",
      "name": "goodModule",
      "pages": [
        "pages/list/list",
        "pages/detail/detail"
      ]
    },
    {
      "root": "modules/marketModule",
      "name": "marketModule",
      "pages": [
        "pages/market/market"
      ],
       "independent": true
    }
  ]
}
 

五、分包預下載

知識點:

分包預下載是指訪問小程序某個頁面時,預先下載分包中的代碼和資源,以提高用戶的使用體驗。當用戶需要訪問分包中的頁面時,已經預先下載的代碼和資源可以直接使用,通過分包預下載加快了頁面的加載速度和顯示速度。

小程序的分包預下載需要在 app.json 中通過 preloadRule 字段設置預下載規(guī)則。preloadRule 是一個對象,對象的 key 表示訪問哪個路徑時進行預加載,value 是進入此頁面的預下載配置,具有兩個配置項:

字段類型必填默認值說明
packagesStringArray預下載的分包名稱,進入頁面后預下載分包的 root 或 name
__APP__ 表示主包。
networkStringwifi在指定網(wǎng)絡下預下載,
可選值為: all: 不限網(wǎng)絡 wifi: 僅wifi下預下載
{
  "subPackages": [
    {
      "root": "modules/goodModule",
      "name": "goodModule",
      "pages": [
        "pages/list/list",
        "pages/detail/detail"
      ]
    },
    {
      "root": "modules/marketModule",
      "name": "marketModule",
      "pages": [
        "pages/market/market"
      ],
      "independent": true
    }
  ],
  "preloadRule": {
    "pages/index/index": {
      "network": "all",
      "packages": ["modules/goodModule"]
    },
    "modules/marketModule/pages/market/market": {
      "network": "all",
      "packages": ["__APP__"]
    }
  }
}

落地代碼

{
  "pages": [
    "pages/index/index",
    "pages/user/user"
  ],
  "subPackages": [
    {
      "root": "pages/music",
      "name": "music",
      "pages": [
        "player/player",
        "lyric/lyric"
      ]
    },
    {
      "root": "pages/settings",
      "name": "settings",
      "pages": [
        "theme/theme",
        "language/language"
      ]
    }
  ],
  "preloadRule": {
    "pages/music/player/player": {
      "packages": ["settings"],
      "network": "wifi"
    }
  }
}

到此這篇關于微信小程序---分包加載的文章就介紹到這了,更多相關微信小程序分包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用JS location實現(xiàn)搜索框歷史記錄功能

    使用JS location實現(xiàn)搜索框歷史記錄功能

    這篇文章主要介紹了使用JS location實現(xiàn)搜索框歷史記錄功能,本文通過實例 代碼講解的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • js 阻止子元素響應父元素的onmouseout事件具體實現(xiàn)

    js 阻止子元素響應父元素的onmouseout事件具體實現(xiàn)

    本文為大家介紹下js阻止子元素響應父元素的onmouseout事件,具體實現(xiàn)如下,感興趣的朋友可以參考下
    2013-12-12
  • JavaScript表單驗證實現(xiàn)過程詳解

    JavaScript表單驗證實現(xiàn)過程詳解

    表單校驗是注冊環(huán)節(jié)中必不可少的操作,表單校驗通過一定的規(guī)則來確保用戶提交數(shù)據(jù)的有效性,下面這篇文章主要給大家介紹了關于el-form表單驗證的一些實用方法,需要的朋友可以參考下
    2023-01-01
  • 全面解析Javascript無限添加QQ好友原理

    全面解析Javascript無限添加QQ好友原理

    這篇文章主要介紹了全面解析Javascript無限添加QQ好友原理的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • webpack中的熱刷新與熱加載的區(qū)別

    webpack中的熱刷新與熱加載的區(qū)別

    本篇文章主要介紹了webpack中的熱刷新與熱加載的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 微信小程序自動客服功能

    微信小程序自動客服功能

    微信小程序最近比較熱,今天小編抽空做了一個客服機器人的小程序,下面小編給大家分享微信小程序自動客服功能,需要的朋友參考下吧
    2017-11-11
  • Web Uploader文件上傳插件使用詳解

    Web Uploader文件上傳插件使用詳解

    WebUploader是由Baidu WebFE(FEX)團隊開發(fā)的一個簡單的以HTML5為主,F(xiàn)LASH為輔的現(xiàn)代文件上傳組件。這篇文章主要為大家詳細介紹了Web Uploader文件上傳插件使用方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • JS實現(xiàn)頁面跳轉參數(shù)不丟失的方法

    JS實現(xiàn)頁面跳轉參數(shù)不丟失的方法

    這篇文章主要介紹了JS實現(xiàn)頁面跳轉參數(shù)不丟失的方法,結合實例形式對比分析了javascript URL加密函數(shù)escape()、encodeURI()與encodeURIComponent()的功能與相關使用技巧,需要的朋友可以參考下
    2016-11-11
  • JavaScript擴展運算符的學習及應用詳情(ES6)

    JavaScript擴展運算符的學習及應用詳情(ES6)

    這篇文章主要介紹了JavaScript擴展運算符的學習及應用詳情(ES6),擴展運算符是ES6新增的一種運算符,他可以幫助我們簡化代碼,簡化操作,具體相關知識感興趣的小伙伴可以查看下面文章的簡單介紹
    2022-08-08
  • js中區(qū)分深拷貝與淺拷貝的實戰(zhàn)過程

    js中區(qū)分深拷貝與淺拷貝的實戰(zhàn)過程

    兩個對象A、B,A有數(shù)據(jù)B為空,B復制了A,我們修改A,如果B中的數(shù)據(jù)跟著變化了,那就是淺拷貝,如果沒有變化,那就是深拷貝,下面這篇文章主要給大家介紹了關于js中區(qū)分深拷貝與淺拷貝的相關資料,需要的朋友可以參考下
    2022-01-01

最新評論