ArkTS中的生命周期
一、Second.ets父组件
1、页面生命周期,即被@Entry装饰的组件生命周期,提供以下生命周期接口:
• onPageShow:页面每次显示时触发。
• onPageHide:页面每次隐藏时触发⼀次。
• onBackPress:当用户点击返回按钮时触发。(是手机下方的返回按钮,不是页面的路由返回或者按钮返回)
// Second.ets
import {Hello} from '../compontent/Hello'
@Entry
@Component
struct Second {
@State count: number = 1
@State message: string = 'Hi this'
// 只有被@Entry装饰的组件才可以调用页面的生命周期
onPageShow() {
console.info('页面每次显示时触发');
}
// 只有被@Entry装饰的组件才可以调用页面的生命周期
onPageHide() {
console.info('页面每次隐藏时触发⼀次');
}
// 只有被@Entry装饰的组件才可以调用页面的生命周期
onBackPress() {
console.info('当用户点击返回按钮时触发--(是手机下方的返回按钮,不是页面的路由返回或者按钮返回)');
}
build() {
Row() {
Column() {
Hello({title:'hello组件'})
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Divider()
Button() {
Text('Back按钮')
.fontSize(20)
.fontWeight(FontWeight.Bold)
.fontColor(Color.White)
}
.type(ButtonType.Capsule)
.margin({
top: 20
})
.backgroundColor('#409eff')
.width('60%')
.onClick(function(){
this.count++
console.info( this.count,'点击了back按钮')
}.bind(this)) //修改this指向
}
.width('100%')
}
.height('100%')
}
}
二、Hello.ets组件
1.组件生命周期,即⼀般用@Component装饰的自定义组件的生命周期,提供以下生命周期接口:
• aboutToAppear:组件即将出现时回调该接⼝,具体时机为在创建⾃定义组件的新实例后,在执行其build()函数之前执行。
• aboutToDisappear:在自定义组件即将析构销毁时执行。
@Component
export struct Hello {
private title:ResourceStr
// 组件生命周期
aboutToDisappear() {
console.info('在自定义组件即将析构销毁时执行')
}
// 组件生命周期
aboutToAppear() {
console.info('在自定义组件即将出现时回调该接⼝')
}
build(){
Row(){
Text(this.title)
.fontSize(30)
.fontWeight(FontWeight.Bold)
}
}
}