鸿蒙 DevEcoStudio:组件实例(页面及组件生命周期函数)

【使用onPageshow等生命周期函数】

在entry/src/main/ets/pages路径下创建Page1.ets:

复制代码
import router from '@ohos.router'
@Entry
@Component
struct Page1 {
  @State message: string = 'Hello World'
  @State show: boolean=true
  aboutToAppear(){
    console.log('Page1组件创建实例')
  }
  aboutToDisappear(){
    console.log('Page1组件销毁')
  }
  onPageShow(){
    console.log('page1页面展示')
  }
  onPageHide(){
    console.log("page1页面隐藏")
  }
  build() {
      Column() {
        Button('show')
          .onClick(()=>{
            this.show=!this.show
          })
        if (this.show){
          ComponentA()
        }
        Button('跳转到Page2')
          .onClick(()=>{
            router.pushUrl({url:"pages/Page2"})
          })
        Button('跳转到Page3')
          .onClick(()=>{
            router.replaceUrl({url:"pages/Page3"})
          })
      }
      .width('100%')
      .height('100%')
  }
}
@Component
struct ComponentA{
  aboutToAppear(){
    console.log('componentA组件创建实例')
  }
  aboutToDisappear(){
    console.log('componentA组件销毁');
  }
  build(){
    Text('compontent A')
  }
}

在entry/src/main/ets/pages路径下同样创建Page2.ets和Page3.ets:

1.Page2.ets内容:

复制代码
@Entry
@Component
struct Page2 {
  @State message: string = 'Page2内容'
  onPageShow(){
    console.log('page2页面展示')
  }
  onPageHide(){
    console.log("page2页面隐藏")
  }
  onBackPress(){
    console.log("Page2页面返回")
  }
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

2.Page3.ets内容:

复制代码
@Entry
@Component
struct Page3 {
  @State message: string = 'Page3内容'
  onPageShow(){
    console.log('page3页面展示')
  }
  onPageHide(){
    console.log("page3页面隐藏")
  }
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

在下边点击Log->HiLog,中间最左边的下拉菜单选择Phone,查看效果,如图:

相关推荐
@海~涛2 分钟前
鸿蒙OpenHarmony
华为·harmonyos
zhongcx5 小时前
鸿蒙应用示例:镂空效果实现教程
harmonyos
训山6 小时前
【11】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-模块化语法与自定义组件
笔记·学习·华为·harmonyos·鸿蒙系统
helloxmg7 小时前
鸿蒙harmonyos next flutter混合开发之开发package
flutter·华为·harmonyos
zhongcx1 天前
鸿蒙应用示例:ArkTS UI框架中的文本缩进技巧
harmonyos
东林知识库1 天前
鸿蒙NEXT开发-自定义构建函数(基于最新api12稳定版)
华为·harmonyos
裴云飞1 天前
鸿蒙性能优化之布局优化
性能优化·harmonyos
zhongcx1 天前
鸿蒙应用示例:ArkTS中设置颜色透明度与颜色渐变方案探讨
harmonyos
真正的醒悟1 天前
华为资源分享
运维·服务器·华为
PlumCarefree2 天前
mp4(H.265编码)转为本地RTSP流
音视频·harmonyos·h.265