鸿蒙 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 小时前
鸿蒙通用事件(事件分发、事件拦截等)
华为·arkts·鸿蒙·事件分发·通用事件·事件拦截
Ww.xh2 小时前
零基础入门鸿蒙NEXT开发实战
华为·harmonyos
_waylau2 小时前
鸿蒙架构师修炼之道-面向对象的分布式架构
分布式·华为·架构·架构师·harmonyos·鸿蒙
kiros_wang2 小时前
HarmonyOS 6(API 23)悬浮导航 + 沉浸光感:从原理到可运行完整示例
华为·harmonyos
monnmxi3 小时前
DevEcoTesting-for-handle-leak:”探索测试“工具的发掘利用与AI赋能的内存泄漏检测和复现(上)
harmonyos
高心星4 小时前
鸿蒙6.0应用开发——基础动画实践案例
华为·动画·鸿蒙6.0·harmonyos6.0·水波动画·微动画·手势动画
zhengyquan6 小时前
华为 Pura X Max 将至:阔折叠再升级,4 月 20 日发布!
华为
Swift社区6 小时前
鸿蒙游戏中的“智能 NPC”架构设计
游戏·华为·harmonyos
2601_949593657 小时前
Flutter_OpenHarmony_三方库_webview_flutter网页内容嵌入与交互适配详解
flutter·harmonyos
前端不太难8 小时前
为什么 AI 游戏更适合鸿蒙?
人工智能·游戏·harmonyos