鸿蒙 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,查看效果,如图:

相关推荐
zhanshuo6 小时前
玩转鸿蒙开发者文档:一文教你高效查资料 + 快速落地功能
harmonyos
Fanmeang6 小时前
VGMP(VRRP Group Management Protocol)VRRP组管理协议
运维·网络·华为·防火墙·vrrp·双机热备·vgmp
zhanshuo6 小时前
鸿蒙 App 也能一键切换深浅色?用 ArkTS 教你轻松实现!
harmonyos
孟凡华9 小时前
鸿蒙-SeekBar
harmonyos
Keya10 小时前
鸿蒙开发样式复用:@Styles、@Extend与AttributeModifier深度对比
前端·分布式·harmonyos
GLAB-Mary13 小时前
【注意】HCIE-Datacom华为数通考试,第四季度将变题!
华为·华为认证·hcie
ilmari17 小时前
HarmonyOS 基于Network Kit封装的网络请求工具
android·flutter·harmonyos
大雷神18 小时前
HarmonyOS中调用C/C++代码(NDK)
harmonyos
simple_lau18 小时前
鸿蒙资源加载深度解析:$r与$rawfile的性能差异与最佳实践
harmonyos·arkts·arkui
zkmall19 小时前
移动商城平台适配:ZKmall开源商城鸿蒙 / 小程序端开发要点
小程序·开源·harmonyos