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

# 按需注入和用時(shí)注入

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

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

# 按需注入

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

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

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

{
  "lazyCodeLoading": "requiredComponents"
}

# 注意事項(xiàng)

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

# 用時(shí)注入

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

在開(kāi)啟「按需注入」特性的前提下,「用時(shí)注入」可以指定一部分自定義組件不在小程序啟動(dòng)時(shí)注入,而是在真正渲染的時(shí)候才進(jìn)行注入。

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

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