• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# \@ComponentV2装饰器:自定义组件
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @jiyujia926-->
5<!--Designer: @s10021109-->
6<!--Tester: @TerryTsao-->
7<!--Adviser: @zhang_yixin13-->
8
9为了在自定义组件中使用V2版本状态变量装饰器的能力,开发者可以使用\@ComponentV2装饰器装饰自定义组件。
10
11\@ComponentV2主要配合状态管理V2使用。阅读本文档前,建议提前阅读[状态管理概述](./arkts-state-management-overview.md)。
12
13>**说明:**
14>
15> \@ComponentV2装饰器从API version 12开始支持。
16>
17> 从API version 12开始,该装饰器支持在原子化服务中使用。
18
19
20## 概述
21
22和[\@Component装饰器](arkts-create-custom-components.md#component)一样,\@ComponentV2装饰器用于装饰自定义组件:
23
24- 在\@ComponentV2装饰的自定义组件中,开发者仅可以使用全新的状态变量装饰器,包括[\@Local](arkts-new-local.md)、[\@Param](arkts-new-param.md)、[\@Once](arkts-new-once.md)、[\@Event](arkts-new-event.md)、[\@Provider](arkts-new-Provider-and-Consumer.md)、[\@Consumer](arkts-new-Provider-and-Consumer.md)等。
25- \@ComponentV2装饰的自定义组件暂不支持[LocalStorage](arkts-localstorage.md)等现有自定义组件的能力。
26- 无法同时使用\@ComponentV2与\@Component装饰同一个struct结构。
27- \@ComponentV2支持一个可选的boolean类型参数freezeWhenInactive,来实现[组件冻结功能](arkts-custom-components-freezeV2.md)。
28
29- 一个简单的\@ComponentV2装饰的自定义组件应具有以下部分:
30
31    ```ts
32    @ComponentV2 // 装饰器
33    struct Index { // struct声明的数据结构
34      build() { // build定义的UI
35      }
36    }
37    ```
38
39除非特别说明,\@ComponentV2装饰的自定义组件将与\@Component装饰的自定义组件保持相同的行为。
40
41## 限制条件
42
43在将\@Component装饰的自定义组件与\@ComponentV2装饰的自定义组件混合使用时,可参考[混用文档](./arkts-custom-component-mixed-scenarios.md)。
44