本文主要是介绍HarmonyOS 延迟加载(lazy import),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
功能特性
延迟加载特性可使待加载文件在冷启动阶段不被加载,直至应用程序实际运行过程中需要用到这些组件时,才按需同步加载相关文件,从而缩短应用冷启动耗时。
使用方式
文件的调用点,可以直接增加lazy标识。
但需要注意的是,后续执行的加载是同步加载,有可能会阻塞任务执行(如点击任务,触发了延迟加载,那么运行时会去执行冷启动未加载的文件,从而增加耗时),因此是否使用lazy需要开发者自行评估。
使用lazy-import延迟加载。
import lazy { a } from "./mod1"; // "mod1" 未执行import { c } from "./mod2"; // "mod2" 执行
错误示例
以下写法将引起编译报错。
export lazy var v; // 编译器提示报错:应用编译报错export lazy default function f(){}; // 编译器提示报错:应用编译报错export lazy default function(){}; // 编译器提示报错:应用编译报错export lazy default 42; // 编译器提示报错:应用编译报错export lazy { x }; // 编译器提示报错:应用编译报错export lazy { x as v }; // 编译器提示报错:应用编译报错export lazy { x } from "mod"; // 编译器提示报错:应用编译报错export lazy { x as v } from "mod"; // 编译器提示报错:应用编译报错export lazy * from "mod"; // 编译器提示报错:应用编译报错import lazy v from "mod"; // 编译器提示报错:应用编译报错import lazy * as ns from "mod"; // 编译器提示报错:应用编译报错
与type关键词同时使用将会导致报错。
import lazy type { obj } from "./mod"; // 不支持,编译器、应用编译报错import type lazy { obj } from "./mod"; // 不支持,编译器、应用编译报错
这篇关于HarmonyOS 延迟加载(lazy import)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!