当前位置: 首页 > news >正文

珠海网站定制邢台百姓网官网

珠海网站定制,邢台百姓网官网,wordpress 获取模板路径,wordpress菜单是什么【HarmonyOS】HarmonyOS NEXT学习日记:七、页面与组件的生命周期 页面和组件 组件:用Component装饰的代码称为自定义组件页面:Entry装饰的组件即页面的根节点 组件生命周期 aboutToAppear:在创建自定义组件的新实例后&#xf…

【HarmonyOS】HarmonyOS NEXT学习日记:七、页面与组件的生命周期

页面和组件

  • 组件:用@Component装饰的代码称为自定义组件
  • 页面:@Entry装饰的组件即页面的根节点

组件生命周期

aboutToAppear:在创建自定义组件的新实例后,在执行其build()函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build()函数中生效。
aboutToDisappear:在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。

页面生命周期

onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景,仅@Entry装饰的自定义组件生效。
onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景,仅@Entry装饰的自定义组件生效。
onBackPress:当用户点击返回按钮时触发,仅@Entry装饰的自定义组件生效。返回true表示页面自己处理返回逻辑,不进行页面路由;返回false表示使用默认的路由返回逻辑,不设置返回值按照false处理。

代码示例

// Index.ets
import text from '@ohos.graphics.text'
import { router } from '@kit.ArkUI';
// 导入业务错误处理模块
import { BusinessError } from '@kit.BasicServicesKit';
@Builder function TextItem(text: string){Text(text).fontSize(18).fontColor(Color.Red).backgroundColor('#ccc').lineHeight(30).width('100%').textAlign(TextAlign.Center).onClick(()=>{router.pushUrl({ url: 'pages/Second' }).then(() => { // 调用 router 模块的 pushUrl 方法跳转到第二页console.info('Succeeded in jumping to the second page.') // 在控制台输出跳转成功的日志信息}).catch((err: BusinessError) => { // 捕捉跳转过程中的错误console.error(`Failed to jump to the second page. Code is ${err.code}, message is ${err.message}`) // 在控制台输出跳转失败的错误信息,包括错误代码和错误信息})})
}
@Entry
@Component
struct Index {@State text: string = '111'@State showChildren: boolean = false;onPageShow() {this.text = 'onPageShow';console.info('IndexComponent onPageShow');}onPageHide() {this.text = 'onPageHide';console.info('IndexComponent onPageHide');}aboutToAppear(){this.text = '222'console.info('IndexComponent aboutToAppear');}aboutToDisappear(){console.info('IndexComponent aboutToDisappear');}build() {Column(){TextItem(this.text)if(this.showChildren){Child()}Button('修改children可见').onClick(()=>{this.showChildren = !this.showChildren})}}
}
@Component
struct Child {@State title: string = 'Children';aboutToDisappear() {console.info('Child aboutToDisappear')}aboutToAppear() {console.info('Child aboutToAppear')}build() {Text(this.title).fontSize(50).onClick(() => {this.title = 'Children Changed';})}
}
页面初始化结束后

在这里插入图片描述

可以看到的是,我们定义text变量时赋值的‘111’在aboutToAppear中已经被修改为‘222’了,最终渲染出来的就是‘222’;
在这里插入图片描述

从日志中我们可以观察到,aboutToDisappear的执行时机在onPageShow之前。

然后我们点击跳转一下页面(离开页面)

在这里插入图片描述
日志如下在这里插入图片描述
组件并未被销毁,所以没有进入aboutToDisappear,但是因为离开了页面,所以进入了onPageHide。

当我们再次返回index页面(进入页面)

将会再次触发onPageShow,每一次页面显示时都会触发。
在这里插入图片描述

那么当我们点击按钮呢?(创建组件)

在这里插入图片描述

在这里插入图片描述
chidren子组件被渲染了出来,也出发了子组件的aboutToAppear。

再次点击按钮(销毁组件)在这里插入图片描述

在这里插入图片描述
将会触发子组件的销毁进入aboutToDisappear,同时页面上的子组件也消失不见。

总结

          页面显示|

ActivityA:onPageShow
------ 组件生命周期 ------
            |组件将要出现|

CustomComponent:aboutToAppear
            |组件的渲染和交互|用户按下返回按钮|

ActivityA:onBackPress
            |组件将要消失|

CustomComponent:aboutToDisappear
          |页面隐藏|

ActivityA:onPageHide
http://www.yayakq.cn/news/383987/

相关文章:

  • 徐州服饰网站建设苏州网站推广找苏州梦易行
  • 广州网匠营销型网站建设公司西安做网站培训
  • 徐州手机网站优化公司企业网站源码搜一品资源网
  • 建网站怎么起名字长沙麓谷网站建设
  • 个人网站建设详细教程2018年的网站制作
  • 重庆seo研究中心肇庆网站建设优化
  • 哈尔滨精致网站建设毕业设计题目怎么选题
  • 厦门专业网站设计代理印度购物网站排名
  • 有没有专门做纸箱的网站大连头条热点新闻
  • 企业网站建设开题报告app软件大全
  • 专门做外贸机械的网站公司车辆管理系统软件
  • 模版网站建设永久免费轻量服务器
  • 校园门户网站建设实施方案北京网站设计公司hlh成都柚米科技15
  • vps怎么做多个网站网站建设注册哪类商标
  • 网站建设有限公司网站建设玖金手指谷哥十
  • 门窗网站制作宣传语wordpress 显示指定文章标题
  • 三水网站制作小程序设计网站
  • 一个网站多台服务器中国建设门户网登录入口
  • 做公司网站的好处交互设计是什么意思
  • 单位网站建设要多少钱图片识别搜索引擎
  • 网站登录按钮点击没反应什么原因做杂志模板下载网站
  • 怎么在网站空间上传文件wordpress admin head
  • 临安区规划建设局网站母版做双语网站
  • 自己的电脑做服务器,并建网站招标文件范本
  • 做婚纱网站的图片素材销售网站建设怎么做
  • 邯郸创建网站要多少钱广告发布费属于什么服务
  • 网站开发上传视频教程c语言除了做网站还能干什么
  • 广州环保网站建设网页搜索能力属于什么素养
  • 手机网站打不开是什么原因造成的邢台网站网站建设
  • 大丰有没有做网站wordpress 定制表单