• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 复用选项
2
3reuse属性用于给\@ReusableV2装饰的自定义组件指定复用选项。
4
5本文档仅为API参考说明。实际功能使用与限制见[@ReusableV2装饰器:组件复用](../../../ui/state-management/arkts-new-reusableV2.md)。
6
7>  **说明:**
8>
9> 从API Version 18开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
10
11## reuse
12
13reuse(options: ReuseOptions): T
14
15复用选项,用于设置V2自定义组件的复用选项。
16
17**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
18
19**系统能力:** SystemCapability.ArkUI.ArkUI.Full
20
21**参数:**
22
23| 参数名  | 类型                          | 必填 | 说明                                           |
24| ------- | ----------------------------- | ---- | ---------------------------------------------- |
25| options | [ReuseOptions](#reuseoptions) | 是   | 复用选项,用于配置复用相关信息,由开发者指定。 |
26
27**返回值:**
28
29| 类型                          | 说明                                           |
30| ----------------------------|---------------------------------------------- |
31|   T |   返回当前组件。 |
32
33## ReuseOptions
34
35复用选项信息。
36
37**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
38
39**系统能力:** SystemCapability.ArkUI.ArkUI.Full
40
41### 属性
42
43| 名称    | 类型                                | 必填 | 说明                                                         |
44| ------- | ----------------------------------- | ---- | ------------------------------------------------------------ |
45| reuseId | [ReuseIdCallback](#reuseidcallback) | 否   | 复用标识id,相同复用标识id的V2自定义组件会被互相复用。默认的复用标识id为自定义组件名。 |
46
47## ReuseIdCallback
48
49type ReuseIdCallback = () => string
50
51获取复用标识id的回调方法。
52
53**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
54
55**系统能力:** SystemCapability.ArkUI.ArkUI.Full
56
57**返回值:**
58
59| 类型   | 说明                                                         |
60| ------ | ------------------------------------------------------------ |
61| string | 复用标识id,由开发者指定。<br>未指定或使用空字符串`''`作为复用标识id时,将默认使用自定义组件名。 |
62
63## 示例
64
65```ts
66@Entry
67@ComponentV2
68struct Index {
69  build() {
70    Column() {
71      ReusableV2Component()
72        .reuse({reuseId: () => 'reuseComponent'}) // 使用'reuseComponent'作为reuseId
73      ReusableV2Component()
74        .reuse({reuseId: () => ''}) // 使用空字符串将默认使用组件名'ReusableV2Component'作为reuseId
75      ReusableV2Component() // 未指定reuseId将默认使用组件名'ReusableV2Component'作为reuseId
76    }
77  }
78}
79@ReusableV2
80@ComponentV2
81struct ReusableV2Component {
82  build() {
83  }
84}
85```
86
87