欧美日韩精品一区二区在线线,一级无码在线收看,精品国产高清91,久久精品欧美电影

# 按需注入和用時注入

在小程序啟動的過程中,除了代碼包下載以外,代碼注入也是一個主要的耗時環(huán)節(jié)。注入代碼量的大小與內(nèi)存占用與注入耗時正相關(guān)。

利用「按需注入」和「用時注入」的特性,可以優(yōu)化代碼注入環(huán)節(jié)的耗時和內(nèi)存占用。

# 按需注入

基礎(chǔ)庫 2.11.1 及以上版本支持,2.11.1 以下兼容但無優(yōu)化效果。 工具調(diào)試請使用 1.05.2111300 及以上版本,基礎(chǔ)庫選 2.20.1 及以上版本。

通常情況下,在小程序啟動時,啟動頁面依賴的所有代碼包(主包、分包、插件包、擴展庫等)的所有 JS 代碼會全部合并注入,包括其他未訪問的頁面以及未用到自定義組件,同時所有頁面和自定義組件的 JS 代碼會被立刻執(zhí)行。這造成很多沒有使用的代碼在小程序運行環(huán)境中注入執(zhí)行,影響注入耗時和內(nèi)存占用。

自基礎(chǔ)庫版本 2.11.1 起,小程序支持通過配置,有選擇地注入必要的代碼,以降低小程序的啟動時間和運行時內(nèi)存。

{
  "lazyCodeLoading": "requiredComponents"
}

# 注意事項

  • 啟用按需注入后,小程序僅注入當前訪問頁面所需的自定義組件和頁面代碼。未訪問的頁面、當前頁面未聲明的自定義組件不會被加載和初始化,對應代碼文件將不被執(zhí)行。請開發(fā)者修改配置后務(wù)必確認小程序的表現(xiàn)正常。
  • 啟用按需注入后,頁面 JSON 配置中定義的所有組件和 app.jsonusingComponents 配置的全局自定義組件,都會被視為頁面的依賴并進行注入和加載。建議開發(fā)者及時移除 JSON 中未使用自定義組件的聲明,并盡量避免在全局聲明使用率低的自定義組件,否則可能會影響按需注入的效果。
  • 插件包和擴展庫目前暫不支持按需注入。如果需要實現(xiàn)插件按需加載,可以考慮將插件置于一個分包,并通過「分包異步化」的形式異步引入。

# 用時注入

基礎(chǔ)庫 2.11.2 及以上版本支持,2.11.2 以下和未配置的效果相同。 工具調(diào)試請使用 1.05.2111300 及以上版本,基礎(chǔ)庫選 2.20.1 及以上版本。

在開啟「按需注入」特性的前提下,「用時注入」可以指定一部分自定義組件不在小程序啟動時注入,而是在真正渲染的時候才進行注入。

在已經(jīng)指定 lazyCodeLoadingrequiredComponents 的情況下,為自定義組件配置 占位組件,組件就會自動被視為用時注入組件:

  1. 每個頁面內(nèi),第一次渲染該組件前,該組件都不會被注入;
  2. 每個頁面內(nèi),第一次渲染該組件時,該組件會被渲染為其對應的占位組件,渲染流程結(jié)束后開始注入;
  3. 注入結(jié)束后,占位組件被替換回對應組件。