《鸿蒙HarmonyOS 5.0开发教程》基础篇03:创建一个新页面

594 阅读3分钟

一、新建页面

1、页面目录 pages

在新建好的项目目录结构中,有一个pages 目录,用来保存当前模块中的所有页面文件,其中 Index.ets 是新建项目时自动创建的第一个页面。

image-20250114144315463

后续我们需要创建新的页面,也会在该目录中进行新建。

2、创建新页面

右键点击“pages”目录,选择“New > Page > Empty Page”,输入页面名称后,点击“Finish”完成创建:

image-20250114145344664

3、预览新页面

在“Previewer”预览器中,想要预览哪一个页面,就先打开该页面的文件,然后再点击“Previewer”打开预览器:

image-20250114145828877

说明:新建页面的默认代码和初始页面的默认代码一样,所以预览出来的页面效果都是“Hello World”。

4、刷新页面

如果我们修改了页面中的代码,按下“ctrl + s”保存代码后,预览器会自动更新UI界面。如果预览器没有自动更新,我们也可以点击右上角的刷新按钮,来手动刷新。

image-20250114150148956

二、页面路由

我们在应用新建的每一个页面,都会自动main_pages.json 文件中生成对应的页面路由配置(不需要手动添加):

image-20250115100905134

说明:如果在 pages 中删除了页面文件,那么也应该将 main_pages.json 中的页面路由配置一并删除(通常会自动删除)。

三、页面代码解析

ArkTS 是 HarmonyOS 应用开发的官方高级语言。

我们每次在 DevEco Studio 中新建页面,都会生成一个后缀为 .ets 文件,同时该文件中会有一段默认的初始 ArkTS 代码,如下:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}

这段代码主要由装饰器、自定义组件、系统UI组件以及属性方法等四部分组成。

1、装饰器

@Entry@Component 以及 @State 都是装饰器。

  • @Component:表示当前装饰的 struct 结构,是一个自定义组件;
  • @Entry:表示当前装饰的自定义组件,是一个页面类的组件(@Entry 通常都是搭配 @Component 一起使用,不会单独使用);
  • @State:用来定义组件内部状态(后续的学习中我们会做详细的讲解)

2、自定义组件

ArkTS 中通过 struct 搭配 @Component 来声明自定义组件:

@Component 
struct Index {

  build() {
    
  }
}

其中:

  • @Component 装饰器,表示当前代码结构是一个自定义组件;
  • Index 是组件名,可以根据需要自定义组件名,但是不能和系统内置组件名相同;
  • build 函数,用于定义组件的 UI 结构,自定义组件内必须定义build()函数;

3、系统UI组件

系统UI组件,就是 ArkUI 框架内置的一些页面 UI 组件,例如页面代码中的 RelativeContainer() 是相对布局 UI 组件,Text() 是文本 UI 组件:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    RelativeContainer() {
      Text(this.message)
    }
  }
}

4、属性方法

属性方法, 其实就是设置 UI 组件的样式,ArkTS 中是通过属性方法的形式来设置组件样式,例如 width()height() 用来设置组件宽高,fontSize() 用来设置文字大小,fontWeight() 用来设置字体加粗效果:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    RelativeContainer() {
      Text(this.message)
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
    }
    .height('100%')
    .width('100%')
  }
}