已合并
修改README文档 #7727
修改README文档 #7727
已合并
tianlongdevcode创建于 2025年11月20日
8 个文件变更+32-35
@@ -1,7 +1,8 @@
1-# MVVM模式(状态管理V2)示例1+# AppStorageV2: 应用全局UI状态存储
2 2 
3### 介绍3### 介绍
4-本教程通过一个简单的待办事项应用示例,逐步引入了状态管理V2装饰器,并通过代码重构实现了MVVM架构。最终,将数据、逻辑和视图分层,使得代码结构更加清晰、易于维护。具体介绍链接:4+ 
5+本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)中各场景的开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的组件及组件属性并合理使用。该工程中展示的代码详细描述可查如下链接:
5 6 
61. [AppStorageV2: 应用全局UI状态存储](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-new-appstoragev2.md)指南文档中示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。71. [AppStorageV2: 应用全局UI状态存储](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-new-appstoragev2.md)指南文档中示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。
7 8
@@ -53,7 +54,7 @@
53```54```
54git init55git init
55git config core.sparsecheckout true56git config core.sparsecheckout true
56-echo code/DocsSample/ArkUISample/StateMgmtV2MVVM > .git/info/sparse-checkout57+echo code/DocsSample/ArkUISample/AppStorageV2 > .git/info/sparse-checkout
57git remote add origin https://gitcode.com/openharmony/applications_app_samples.git58git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
58git pull origin master59git pull origin master
59```60```
@@ -1,11 +1,10 @@
1-# @Once初始化同步一次1+# @Computed装饰器计算属性
2 2 
3### 介绍3### 介绍
4 4 
5-本示例展示了[@Once:初始化同步一次](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-new-once.md)装饰器的使用方法5+本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)中各场景开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的组件及组件属性并合理使用。该工程中展示的代码详细描述可查如下链接
6 6 
7-1. @Once用于期望变量仅初始化同步数据源一次,之后不再继续同步变化的场景;7+1. [@Computed装饰器:计算属性](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-new-Computed.md)
8-2. 当@Once与@Param结合使用时,可以解除@Param无法在本地修改的限制,并能够触发UI刷新。此时,使用@Param和@Once的效果类似于@Local,但@Param和@Once还能接收外部传入的初始值;
9 8 
10### 效果预览9### 效果预览
11 10 
@@ -14,15 +13,6 @@
14|-------------------------|-----------------------------|-----------------------------|-----------------------------|-----------------------------|13|-------------------------|-----------------------------|-----------------------------|-----------------------------|-----------------------------|
15| ![](screenshots/image1.png) | ![](screenshots/image2.png) | ![](screenshots/image3.png) | ![](screenshots/image4.png) | ![](screenshots/image5.png) |14| ![](screenshots/image1.png) | ![](screenshots/image2.png) | ![](screenshots/image3.png) | ![](screenshots/image4.png) | ![](screenshots/image5.png) |
16 15 
17-### 具体实现
18- 
19-1. 到对应模块的官网文档,理解模块功能和使用说明
20- 
21-2. 补充对应的代码片段,确保可以运行
22- 
23-3. 拿真机,填写测试用例,运行项目
24- 
25-4. 拿真机对用例进行自动测试
26 16 
27### 使用说明17### 使用说明
28 18 
@@ -38,6 +28,7 @@ entry/src/
38│ │ └── pages28│ │ └── pages
39│ │ ├── Index.ets29│ │ ├── Index.ets
40│ │ └── ComputedInitParam.ets30│ │ └── ComputedInitParam.ets
31+│ │ └── ComputedProperty.ets
41│ │ └── ComputingPropertyResolution.ets32│ │ └── ComputingPropertyResolution.ets
42│ │ └── CustomComponentUse.ets33│ │ └── CustomComponentUse.ets
43│ │ └── ObservedV2ClassUser.ets34│ │ └── ObservedV2ClassUser.ets
@@ -52,6 +43,14 @@ entry/src/
52 43 
53```44```
54 45 
46+### 具体实现
47+ 
48+1. @ComponentV2中@Computed装饰getter方法,避免UI重复计算,依赖状态变化仅重算一次;
49+ 
50+2. @ObservedV2类中@Computed依赖@Trace变量,异步初始化,依赖变化自动重算;
51+ 
52+3. @Computed计算结果可初始化子组件@Param,依赖变化时自动同步
53+ 
55### 相关权限54### 相关权限
56 55 
57不涉及。56不涉及。
@@ -4,13 +4,7 @@
4 4 
5本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)中各场景的开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的组件及组件属性并合理使用。该工程中展示的代码详细描述可查如下链接:5本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)中各场景的开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的组件及组件属性并合理使用。该工程中展示的代码详细描述可查如下链接:
6 6 
7-### 1.[线性容器(Column)](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-container-column.md)7+1. [自定义组件冻结功能(V1)](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-custom-components-freeze.md)
8- 
9-### 2.[文本显示器(Text)](https://docs.openharmony.cn/pages/v5.1/en/application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-text.md)
10- 
11-### 3.[Button](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-button.md)
12- 
13-### 4[ 自定义组件冻结功能](https://docs.openharmony.cn/pages/v5.1/zh-cn/application-dev/ui/state-management/arkts-custom-components-freeze.md)
14 8 
15### 效果预览9### 效果预览
16| 页面1页面2跳转 | 页面2返回上一页 | TabContent创建 | LazyForEach中缓存的自定义组件进行冻结 | NavigationContentMsgStack会被设置成非激活态 |10| 页面1页面2跳转 | 页面2返回上一页 | TabContent创建 | LazyForEach中缓存的自定义组件进行冻结 | NavigationContentMsgStack会被设置成非激活态 |
@@ -2,7 +2,7 @@
2 2 
3### 介绍3### 介绍
4 4 
5-本工程主要实现了对以下指南文档中 [@Event装饰器:规范组件输](https://docs.openharmony.cn/pages/v6.0/zh-cn/application-dev/ui/state-management/arkts-new-event.md) 示例代码片段的工程化,主要目标是帮助开发者快速了解在@ComponentV2装饰的自定义组件中使用@Event装饰器。5+本工程主要实现了对以下指南文档中 [@Event装饰器:规范组件输](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-new-event.md) 示例代码片段的工程化,主要目标是帮助开发者快速了解在@ComponentV2装饰的自定义组件中使用@Event装饰器。
6 6 
7### 更改父组件中变量7### 更改父组件中变量
8 8 
@@ -1,4 +1,4 @@
1-# @Provider装饰器和@Consumer装饰器指南文档示例1+# @Provider装饰器和@Consumer装饰器:跨组件层级双向同步
2 2 
3### 介绍3### 介绍
4 4 
@@ -6,14 +6,16 @@
6 6 
7@Provider和@Consumer属于状态管理V2装饰器,所以只能在@ComponentV2中才能使用,在@Component中使用会编译报错。7@Provider和@Consumer属于状态管理V2装饰器,所以只能在@ComponentV2中才能使用,在@Component中使用会编译报错。
8 8 
9+1. [@Provider装饰器和@Consumer装饰器:跨组件层级双向同步](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-new-Provider-and-Consumer.md)
10+ 
9使用说明:11使用说明:
101. 该工程可以选择在模拟器和开发板上运行。121. 该工程可以选择在模拟器和开发板上运行。
112. 点击构建,即可在生成的应用中点击对应的按钮,观察自定义占位节点的不同应用。132. 点击构建,即可在生成的应用中点击对应的按钮,观察自定义占位节点的不同应用。
123. 进入”DocsSample/ArkUISample/ProviderConsumer/entry/src/ohosTest/ets/test/index.test.ets“文件,可以对本项目进行UI的自动化测试。143. 进入”DocsSample/ArkUISample/ProviderConsumer/entry/src/ohosTest/ets/test/index.test.ets“文件,可以对本项目进行UI的自动化测试。
13### 效果预览15### 效果预览
14 16 
15-| 首页 | 列表类组件目录 | 列表中显示数据示例 |17+| 首页 | 列表类组件目录 |
16-|------------------------------------|------------------------------------|------------------------------------|18+|------------------------------------|------------------------------------|
17| ![](screenshots/device/image1.png) | ![](screenshots/device/image2.png) |19| ![](screenshots/device/image1.png) | ![](screenshots/device/image2.png) |
18 20 
19### 使用说明21### 使用说明
@@ -2,7 +2,9 @@
2 2 
3### 介绍3### 介绍
4 4 
5-@Require是校验@Prop、@State、@Provide、@BuilderParam、@Param和普变量(无状态装饰器修饰的变量)是否需要构造传参一个装饰器5+本示例过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)中各场景开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的组件及组件属性并合理使用该工程中展示的代码详细描述可查如下链接:
6+ 
7+1. [@Require装饰器:校验构造传参](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-require.md)
6 8 
7### 效果预览9### 效果预览
8 10 
@@ -10,8 +12,6 @@
10|-------------------|------------------------------------|------------------------------------|--------------------------------------|--------------------------------------|12|-------------------|------------------------------------|------------------------------------|--------------------------------------|--------------------------------------|
11| ![](screenshots/Screenshot_2025-10-24T173700.png) | ![](screenshots/Screenshot_2025-10-24T173714.png) | ![](screenshots/Screenshot_2025-10-24T173738.png) | ![](screenshots/Screenshot_2025-10-24T173811.png) | ![](screenshots/Screenshot_2025-10-24T173835.png) |13| ![](screenshots/Screenshot_2025-10-24T173700.png) | ![](screenshots/Screenshot_2025-10-24T173714.png) | ![](screenshots/Screenshot_2025-10-24T173738.png) | ![](screenshots/Screenshot_2025-10-24T173811.png) | ![](screenshots/Screenshot_2025-10-24T173835.png) |
12 14 
13- 
14-不涉及。
15### 使用说明15### 使用说明
16 16 
171. 应用在启动后显示首页4个按钮。171. 应用在启动后显示首页4个按钮。
@@ -43,6 +43,7 @@ entry/src/
431. 当Child组件内使用@Require装饰器和@Prop、@State、@Provide、@BuilderParam、@Param和普通变量(无状态装饰器修饰的变量)结合使用时,父组件Index在构造Child时必须传参,否则编译不通过。431. 当Child组件内使用@Require装饰器和@Prop、@State、@Provide、@BuilderParam、@Param和普通变量(无状态装饰器修饰的变量)结合使用时,父组件Index在构造Child时必须传参,否则编译不通过。
442. 使用@ComponentV2修饰的自定义组件ChildPage通过父组件ParentPage进行初始化,因为有@Require装饰@Param,所以父组件必须进行构造赋值。442. 使用@ComponentV2修饰的自定义组件ChildPage通过父组件ParentPage进行初始化,因为有@Require装饰@Param,所以父组件必须进行构造赋值。
453. 当Child组件内将@Require装饰器与@Prop、@State、@Provide、@BuilderParam、普通变量(无状态装饰器修饰的变量)结合使用时,若父组件Index在构造Child时未传递相应参数,则会导致编译失败。当ChildV2组件内将@Require装饰器与@Param结合使用时,若父组件Index在构造ChildV2时未传递相应参数,则同样会导致编译失败。453. 当Child组件内将@Require装饰器与@Prop、@State、@Provide、@BuilderParam、普通变量(无状态装饰器修饰的变量)结合使用时,若父组件Index在构造Child时未传递相应参数,则会导致编译失败。当ChildV2组件内将@Require装饰器与@Param结合使用时,若父组件Index在构造ChildV2时未传递相应参数,则同样会导致编译失败。
46+ 
46### 相关权限47### 相关权限
47 48 
48不涉及。49不涉及。
@@ -1,4 +1,4 @@
1-# ArkUI@Track装饰器指南文档示例1+# @Track装饰器:class对象属性级更新
2 2 
3### 介绍3### 介绍
4 4 
@@ -6,7 +6,7 @@ stateTrack
6本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)6本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)
7中各场景的开发示例,展示在工程中,帮助开发者更好地理解@Track装饰器:class对象属性并合理使用。该工程中展示的代码详细描述可查如下链接:7中各场景的开发示例,展示在工程中,帮助开发者更好地理解@Track装饰器:class对象属性并合理使用。该工程中展示的代码详细描述可查如下链接:
8 8 
9-1. [class属性级更新说明](https://gitcode.com/tianlongdevcode/docs_zh/blob/master/zh-cn/application-dev/ui/state-management/arkts-track.md)9+1. [class属性级更新说明](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-track.md)
10 10 
11### [class属性级更新说明]11### [class属性级更新说明]
12 12 
@@ -73,6 +73,6 @@ entry/src/ohosTest/
73git init73git init
74git config core.sparsecheckout true74git config core.sparsecheckout true
75echo code/DocsSample/ArkUISample/StateTrack > .git/info/sparse-checkout75echo code/DocsSample/ArkUISample/StateTrack > .git/info/sparse-checkout
76-git remote add origin https://gitCode.com/openharmony/applications_app_samples.git76+git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
77git pull origin master77git pull origin master
78````78````
@@ -1,4 +1,4 @@
1-# com.samples.wrapbuilder1+# wrapBuilder:封装全局@Builder
2 2 
3## 介绍3## 介绍
4 4 
@@ -19,7 +19,7 @@
19 19 
20从API version 12开始,wrapBuilder支持在元服务中使用。20从API version 12开始,wrapBuilder支持在元服务中使用。
21 21 
22-[@ComponentV2装饰器](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-new-componentV2.md)。22+[@ComponentV2装饰器](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-create-custom-components.md#componentv2)。
23 23 
24[wrapBuilder:封装全局@Builder](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-wrapBuilder.md)。24[wrapBuilder:封装全局@Builder](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/state-management/arkts-wrapBuilder.md)。
25 25