前言💐
鸿蒙出来了比较久的一段时间了,本着对新技术的尊重以及抱有期待的心理,想要站在前端的角度了解一下鸿蒙到底是在干嘛,他的语言到底是什么。首先讲明白一下本系列文章目的性非常强。就是为了通过写文章做产出的方式学习HarmonyOS,如果文章有写的不对的地方,欢迎大家提出。
介绍模块🚀
为什么会有HarmonyOS学习HarmonyOS需要准备什么ArkTs页面组成以及生命周期总结
为什么会有HarmonyOS
以下是华为官网的介绍
- 针对不同设备上的不同操作系统,重复开发,维护多套版本。
- 多种语言栈,对人员技能要求高。
- 多种开发框架,不同的编程范式。
- 命令式编程,需关注细节,变更频繁,维护成本高。
直白的理解就是维护一个App产品的成本在不同的平台的技术成本以及运营成本比较高,有的时候并没有很好的办法去兼顾产品在各个不同平台的表现。还有一个原因是因为目前是互联网和AI的时代,应用的设备底座将从几十亿手机扩展到数百亿IoT设备。不同的场景将不仅仅局限于手机,而会将目标放在更多的智能设备上。比如车载显示屏,TV智能屏,wearable智能穿戴设备,智能摄像头等
学习HarmonyOS需要准备什么
以下准备环节参照着官网的步骤一步一步来就可以完成,不再在这里多余的赘述
IDE环境的搭建- 简单了解
编辑器的使用 预览器的使用
这是多设备下的预览模式
- 简单了解一下
ArkTS语言(前端了解起来不会存在什么陡峭的学习曲线)
模拟器(需要登录华为官方账号去申请在线模拟器,下载以后可以使用)
登录这个页面,然后去申请模拟器,一般当天就会进行审批。效率还是很快的
这是我用的自己的账号申请以后查看模拟器,这个时候就可以启动模拟器了。
到这里为止就差不多把前期需要的环境以及前置知识都准备好了
ArkTs页面组成以及生命周期
页面组成
以下是官网给的一些页面组成的基本概念:
- 装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI刷新。
- UI描述:以声明式的方式来描述UI的结构,例如build()方法中的代码块。
- 自定义组件:可复用的UI单元,可组合其他组件,如上述被@Component装饰的struct Hello。
- 系统组件:ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的Column、Text、Divider、Button。
- 属性方法:组件可以通过链式调用配置多项属性,如fontSize()、width()、height()、backgroundColor()等。
- 事件方法:组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的onClick()。
- 系统组件、属性方法、事件方法具体使用可参考基于ArkTS的声明式开发范式。
其实以上的概念性的东西使用一次模拟器编写几行代码就大概知道是怎么回事了,体现在明面上的东西几乎一目了然
生命周期(重点)
这里HarmonyOS的生命周期主要分为页面生命周期以及组件生命周期。熟悉小程序的开发都应该知道这里,但是还需要详细拆开来分享一下。
页面生命周期:即被@Entry装饰的组件生命周期,提供以下生命周期接口:
- onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。
- onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。
- onBackPress:当用户点击返回按钮时触发。
组件生命周期,即一般用@Component装饰的自定义组件的生命周期,提供以下生命周期接口:
- aboutToAppear:组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行。
- onDidBuild:组件build()函数执行完成之后回调该接口,不建议在onDidBuild函数中更改状态变量、使用animateTo等功能,这可能会导致不稳定的UI表现。
- aboutToDisappear:aboutToDisappear函数在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。
生命周期示意图
注意:
- 只有被
@Entry装饰的组件才可以调用页面的生命周期 - 组件的销毁过程是直接从组件树上摘下子树,所以会先调用父组件的销毁方法,再调用子组件的销毁方法
以上就是关于组件生命周期和页面的生命周期的一个基本绘制示意图,以及基本的逻辑概念还有需要注意的一些点。
总结🍁
本文依照HarmonyOS入门第一到第三节课程进行学习然后简单归纳总结的一些小的注意点,当然也省略了许多可能我认为不是那么重要的东西。欢迎讨论交流,共同学习以及进步。后面会持续更新该系列文章,直到我把高级认证考下来哈哈哈🚴♀️
本文正在参加华为鸿蒙有奖征文征文活动