| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 06-May-2025 | - | 35 | 32 | ||
| entry/ | 06-May-2025 | - | 1,421 | 1,273 | ||
| hvigor/ | 06-May-2025 | - | 38 | 36 | ||
| screenshots/ | 06-May-2025 | - | ||||
| .gitignore | D | 06-May-2025 | 133 | 12 | 12 | |
| README.md | D | 06-May-2025 | 3.3 KiB | 74 | 53 | |
| build-profile.json5 | D | 06-May-2025 | 1.4 KiB | 58 | 57 | |
| code-linter.json5 | D | 06-May-2025 | 958 | 35 | 34 | |
| hvigorfile.ts | D | 06-May-2025 | 843 | 22 | 5 | |
| oh-package.json5 | D | 06-May-2025 | 834 | 26 | 24 | |
| ohosTest.md | D | 06-May-2025 | 1.3 KiB | 12 | 10 |
README.md
1# ArkTS模块加载副作用及优化 2 3### 介绍 4 5当使用ArkTS模块化时,模块的加载和执行可能会引发副作用。副作用是指在模块导入过程中,除了导出功能或对象之外,还产生了额外的行为或状态变化。这些行为可能影响程序别的部分,并导致非预期的顶层代码执行、全局状态变化、原型链修改、导入内容未定义等问题。 6 7本项目展现了模块加载副作用及优化,包括模块执行顶层代码、修改全局对象、修改应用级ArkUI组件的状态变量信息、修改内置全局变量或原型链、循环依赖和延迟加载改变模块执行顺序等场景,对比产生副作用的场景和优化后场景。代码详细描述可查如下链接。 8 9- [模块加载副作用及优化](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/arkts-utils/arkts-module-side-effects.md) 10 11### 效果预览 12 13| 首页 | 14| ------------------------------------------------------------ | 15| <img src="./screenshots/ModuleLoadingSideEffects.png" style="zoom:50%;" /> | 16 17### 使用说明 18 191. 运行Index主界面。 202. 页面中呈现五个按钮分别对应介绍中五个场景,分别点击按钮可以跳转到各个场景的页面,页面中有副作用以及优化后结果进行对比,并在工作台打印日志。 213. 运行测试用例ModuleLoadingSideEffects.test.ets文件对页面代码进行测试可以全部通过。 22 23### 工程目录 24 25``` 26entry/src/ 27 ├── main 28 │ ├── ets 29 │ │ ├── entryability 30 │ │ ├── entrybackupability 31 │ │ ├── pages 32 │ │ ├── LazyImportChangeExecutionOrder // 延迟加载改变模块执行顺序 33 │ │ ├── ModifyGlobalObject // 修改全局对象 34 │ │ ├── ModifyingGlobalVariables // 修改内置全局变量或原型链 35 │ │ ├── ModifyTheApplicationLevelArkUI // 修改应用级ArkUI组件的状态变量信息 36 │ │ ├── TopCodeModification // 模块执行顶层代码 37 │ │ └── Index.ets // 首页 38 │ ├── module.json5 39 │ └── resources 40 ├── ohosTest 41 │ ├── ets 42 │ │ └── test 43 │ │ ├── Ability.test.ets 44 │ │ ├── ModuleLoadingSideEffects.test.ets // 自动化测试代码 45 │ │ └── List.test 46``` 47 48### 相关权限 49 50不涉及。 51 52### 依赖 53 54不涉及。 55 56### 约束与限制 57 581.本示例仅支持标准系统上运行, 支持设备:RK3568。 59 602.本示例为Stage模型,支持API14版本SDK,版本号:5.0.2.57,镜像版本号:OpenHarmony_5.0.2.58。 61 623.本示例需要使用DevEco Studio 5.0.1 Release (Build Version: 5.0.5.306, built on December 6, 2024)及以上版本才可编译运行。 63 64### 下载 65 66如需单独下载本工程,执行如下命令: 67 68```` 69git init 70git config core.sparsecheckout true 71echo code/DocsSample/ArkTs/ArkTSRuntime/ArkTSModule/ModuleLoadingSideEffects > .git/info/sparse-checkout 72git remote add origin https://gitee.com/openharmony/applications_app_samples.git 73git pull origin master 74````