HarmonyOS(56) 获取自定义组件的唯一ID:getUniqueId()方法

getUniqueId是API 12提供的接口,用来获取当前Component的UniqueId。UniqueId为系统为每个组件分配的Id,可保证当前应用中的唯一性。

测试代码如下,分别在PageOne、PageTwo、PageThree三个Component的aboutToAppear打印各自的UniqueId:

dart 复制代码
  aboutToAppear(): void {
    this.test();
  }
  test(){
    let uniqueId: number = this.getUniqueId();
    console.info('pageTwo uniqueId == ' + uniqueId);
  }

完整代码如下:

dart 复制代码
@Entry
@Component
struct PageOne {
  build() {
    Row() {
      Column({ space: 10 }) {
        PageTwo()
        PageThree()
      }
      .width('100%')
    }
    .height('100%')
    .backgroundColor(0xF1F3F5)
  }
  aboutToAppear(): void {
    this.test();
  }
  test(){
    let uniqueId: number = this.getUniqueId();
    console.info('pageOne uniqueId == ' + uniqueId);
  }
}
@Component
export struct PageTwo {
  @State message: string = 'Hello World 2';
  build() {
      Text(this.message)
        .id('PageTwo HelloWorld ')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)

  }
  aboutToAppear(): void {
    this.test();
  }
  test(){
    let uniqueId: number = this.getUniqueId();
    console.info('pageTwo uniqueId == ' + uniqueId);
  }
}

@Component
export struct PageThree {
  @State message: string = 'Hello  World 3';

  build() {
      Text(this.message)
        .id('PageTwo HelloWorld ')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)

  }
  aboutToAppear(): void {
    this.test();
  }
  test(){
    let uniqueId: number = this.getUniqueId();
    console.info('pageThree uniqueId == ' + uniqueId);
  }
}

运行后,日志输出如下所示:

dart 复制代码
10-24 10:14:56.135   46525-46525  A03D00/com.exa...simplme/JSAPP pid-46525             I     pageOne uniqueId == 3
10-24 10:14:56.136   46525-46525  A03D00/com.exa...simplme/JSAPP pid-46525             I     pageTwo uniqueId == 7
10-24 10:14:56.136   46525-46525  A03D00/com.exa...simplme/JSAPP pid-46525             I     pageThree uniqueId == 8
相关推荐
BensionLZ1 小时前
ArkUI的样式二
harmonyos
别说我什么都不会1 小时前
OpenHarmony深度解读之分布式软总线:authmanager模块(3)/设备身份认证过程
分布式·嵌入式·harmonyos
AriesHoo1 小时前
Freadhub 适配原生鸿蒙(Harmony OS NEXT)
android·harmonyos
东林知识库2 小时前
鸿蒙NEXT项目实战-百得知识库03
华为·harmonyos
没有了遇见2 小时前
HarmonyOS学习ArkUI之textAlign,alignRules,alignSelf,alignItems,align
harmonyos·arkts
盖世栗子3 小时前
在鸿蒙ArkUI的RelativeContainer中,锚点的对齐规则
harmonyos
别说我什么都不会4 小时前
OpenHarmony源码分析之分布式软总线:authmanager模块(2)/设备认证通信管理
嵌入式·源码·harmonyos
塞尔维亚大汉4 小时前
OpenHarmony轻量系统服务管理|samgr_server功能详解(一)
操作系统·嵌入式·harmonyos
kirk_wang5 小时前
HarmonyOS NEXT 组件状态管理的对比
华为·harmonyos
MardaWang6 小时前
HarmonyOS 开发中条件渲染的选择:if/else 与取反操作的对比与实践
华为·harmonyos