HarmonyOS NEXT鸿蒙开发:@Entry和@Component装饰器介绍

介绍

@Entry是一个核心装饰器,用于标识 应用的入口组件,即应用启动时加载的第一个视图组件。

通常与 @Component 装饰器配合使用,修饰一个 struct 组件,表明该组件是应用的起点。

作用

  • 应用启动入口:@Entry装饰器将指定的组件标记为应用的启动页面。鸿蒙系统会自动将这个组件作为应用的第一个页面进行展示。
  • 简化启动流程:通过@Entry,开发者无需手动配置复杂的启动逻辑,系统会自动完成从入口组件开始的加载和渲染过程。

应用场景

  • 主界面定义:@Entry组件通常是应用的主界面,包含导航栏、核心功能入口等。
  • 初始化逻辑:可以在@Entry组件中完成初始化工作,如加载数据、设置全局配置等。
  • 模块化开发:结合@Component定义的复用组件,构建模块化的应用结构。

与 @Component 的关系

  • 协同工作:@Entry和@Component通常一起使用,@Entry标识入口组件,@Component定义组件的结构和行为。

  • 组件复用:通过@Component定义的组件可以在其他组件中被引用和嵌套,而@Entry组件是应用的起点。

语法

@Entry通常与@Component装饰器一起使用,标记一个结构体struct 为应用的入口组件。

例子

  @Entry
  @Component
  struct MainPage {
    @State message: string = 'Hello, HarmonyOS!';
    build() {
      Column() {
        Text(this.message).fontSize(24)
        Button('Click Me').onClick(() => {
          this.message = 'Button Clicked!';
        })
      }
    }
  }

说明:MainPage组件被@Entry和@Component装饰器标记为应用的入口组件。组件包含一个文本(Text)和一个按钮(Button),点击按钮会更新文本内容。

注意

  • 唯一性:单个 UIAbility 中,必须且只能有一个@Entry装饰的组件,作为应用的唯一入口。

  • 根容器要求:@Entry装饰的组件,在 build() 函数中,需要包含 一个根容器 (如Column、Row等),作为布局的起点。

  • 被 @Entry 修饰的组件所在的页面,要在 main_pages.json 配置文件中配置,确保应用启动时能正确找到并加载该页面。


原文出处:/show_1GW1y5nDSf7y.html