ArkTs Tips III

23 阅读1分钟

layout: post title: "HarmonyOS Tips" subtitle: " "厚积薄发"" date: 2025-3-17 15:39:00 author: "littleplayer" header-img: "img/about-bg.jpg" catalog: true tags: - ArkTs

路漫漫其修远兮, 吾将上下而求索

题记

江湖风云变幻,鸿蒙终将成为操作系统的半壁江山

ArkTs屏幕的宽高

import { display } from '@kit.ArkUI'


class ScreenUtils {
  static defaultDisplay = display.getDefaultDisplaySync()
  static width(): number {
    return ScreenUtils.defaultDisplay.width
  }
  static height(): number {
    return ScreenUtils.defaultDisplay.height
  }

  static widthPv(): number {
    return px2vp(ScreenUtils.defaultDisplay.width)
  }
  static heightPv(): number {
    return px2vp(ScreenUtils.defaultDisplay.height)
  }

}


Step

Step StepItem不支持ForEach吗?

Navigation

ArkTs导航与苹果的导航类似,但设计又不太一样
root使用
Navigation(this.navStack) {
  this.navStack.pushPath({ name: '', param: ? }, true)

}
.navDestination((name: string, param: object) => {  //无法跳转
      if(name === '') {
        return PlanMaterialsListPage()
      }
      return PlanMaterialsListPage()
    })
.navDestination(this.PageMap)

  @Builder
  PageMap(name: string, params: object) {
    if (name === 'PlanMaterialsListPage') {
      PlanMaterialsListPage()
    }
  })

subpage

NavDestination() {

}

tips: 为何@Builder才能正常跳转呢

ArkTs Link使用

传入子页面 $xxxx

ArkTs 清空数组

arr.length = 0
arr = []

Navgation包裹Tab,为何高度会短半截??

什么情况下用@Link 什么情况下用@ObjectLink

@Link 双向绑定,整个变量,基本类型、简单对象,整个变量变化触发
@ObjectLink 双向绑定(对象属性),复杂对象(嵌套对象),对象属性变化时触发

return 在map中很重要

let times = days.length > 0 ? '[' + days.map((day) => {
      return '' + (day.time?.getTime() ?? 0) / 1000
    }).join(',') + ']' : `[${this.currentDate}]`