arkts基础知识
1.Object类型
Object类型是所有引用类型的基类型。任何值,包括基本类型的值(它们会被自动装箱),都可以直接被赋给Object类型的变量。
2.枚举常量
使用枚举常量时必须以枚举类型名称为前缀。
enum ColorSet { Red, Green, Blue }
let c: ColorSet = ColorSet.Red;
3.union类型
union类型即联合类型,是由多个类型组合成的引用类型。联合类型包含了变量可能的所有类型。
class Cat {
// ...
}
class Dog {
// ...
}
class Frog {
// ...
}
type Animal = Cat | Dog | Frog | number
// Cat、Dog、Frog是一些类型(类或接口)
let animal: Animal = new Cat();
animal = new Frog();
animal = 42;
// 可以将类型为联合类型的变量赋值为任何组成类型的有效值
4.闭包
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/introduction-to-arkts-V5#闭包
5.快捷键
Alt+7
ctl+F12 类代码结构
shift+shift 全局搜文件或代码 可直接选all
6.入口页面如何引用的
a.entry里的module.json5中找到带skills的aibility,里面有"srcEntry": "./ets/entryability/EntryAbility.ts"
b.ets/entryability/EntryAbility.ts里的方法onWindowStageCreate()有通过loadContent加载第一个页面windowStage.loadContent('pages/Index', (err, data)
c.第一个加载的页面就是entry\pages\Index.ets
7.页面路由
router.back() 和 router.pushUrl() 的区别
router.back() 会将当前页面移出页面栈
router.pushUrl() 不会将当前页面移出页面栈
8.aboutToAppear()
使用场景:发起网络请求和数据初始化
9.装饰器
@state 装饰状态变量,变量必须初始化
@Prop 装饰状态变量,变量允许初始化,父向子单向传值(父State,子Prop)
@Extend 抽取组件的共有属性到一个函数,在build外部定义
@Link 装饰状态变量,变量禁止初始化,父与子双向传值(父State,子Link)
@Builder 将重复的UI元素封装成一个方法,在build内调用,在build内定义
示例1
@Extend(Column)
function ColumnStyle() {
.justifyContent(FlexAlign.Center)
.width(150)
.height(150)
.borderRadius(10)
示例2
build() {
Column() {
this.CommonText
}
@Builder
CommonText() {
Text('ArkUI')
.fontWeight(FontWeight.Bold)
.fontSize(20)
.fontColor(Color.White)
}
}
10.布局组件
Row
Column
Stack
List
11.ForEach
12.MVVM架构
13.属性动画
// 需求:利用animateTo做动画
// 组件1: 做旋转动画
// 组件2: 做位移和透明度动画
//第一步: 声明相关状态变量
//第二步:将状态变量设置到相关可动画属性接口 (状态变量关联组件属性)
//第三步:动画接口的 闭包内通过状态变量改变UI界面 (改变状态变量,开启动画)
// 1. animation:可以让多个动画,使用不同的动画参数
// 2. animateTo:多个动画,只能公用一个相同的动画参数
14.转场动画
出现、消失
导航转场
模态转场
共享元素转场