1# 复用标识
2
3reuseId用于标记自定义组件复用组,当组件回收复用时,复用框架将根据组件的reuseId来划分组件的复用组。
4
5>  **说明:**
6>
7> 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9
10## reuseId
11
12reuseId(id: string)
13
14复用标识,用于划分自定义组件的复用组。
15
16**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
17
18**系统能力:** SystemCapability.ArkUI.ArkUI.Full
19
20**参数:**
21
22| 参数名 | 类型   | 必填 | 说明                                   |
23| ------ | ------ | ---- | -------------------------------------- |
24| id     | string | 是   | 复用标识,用于划分自定义组件的复用组。 |
25
26## 示例
27
28该示例通过reused标识自定义组件的复用组。
29
30```ts
31// xxx.ets
32@Entry
33@Component
34struct MyComponent {
35  @State switch: boolean = true;
36  private type: string = "type1";
37
38  build() {
39    Column() {
40      Button("ChangeType")
41        .onClick(() => {
42          this.type = "type2"
43        })
44      Button("Switch")
45        .onClick(() => {
46          this.switch = !this.switch
47        })
48      if (this.switch) {
49        ReusableChildComponent({ type: this.type })
50          .reuseId(this.type)
51      }
52    }
53    .width('100%')
54    .height('100%')
55  }
56}
57
58@Reusable
59@Component
60struct ReusableChildComponent {
61  @State type: string = ''
62
63  aboutToAppear() {
64    console.log(`ReusableChildComponent Appear ${this.type}`)
65  }
66
67  aboutToReuse(params: ESObject) {
68    console.log(`ReusableChildComponent Reuse ${this.type}`)
69    this.type = params.type;
70  }
71
72  build() {
73    Row() {
74      Text(this.type)
75        .fontSize(20)
76        .margin({ left: 10 })
77    }.margin({ left: 10, right: 10 })
78  }
79}
80```
81