鸿蒙4.0开发笔记之ArkTS语法基础之数据传递与共享详细讲解(十八)

【HarmonyOS NEXT】Entry的Ability中是否可以loadContent另一个HSP的pages 在Entry的Ability中是否可以loadContent另一个hsp的pages呢?如果可以,应该如何实现?希望在entry中只实现启动逻辑,但业务逻辑和pages都放在其他的hsp module中。 阅读详情

一、路由数据传递(router)

1、路由数据传递定义

即使用router.pushUrl进行路由跳转,从而实现页面间的数据传递。这个方法可以实现一个页面向另一个指定页面的数据传递和共享。

2、路由数据传递使用方法

(1)例如在LifeCircle页面的Build()组件下创建一个页面跳转的按钮,实现页面跳转,

		//验证页面跳转的数据传递按钮
        Button('页面跳转')

(2)在按钮中创建点击事件,点击事件内容就是使用router.pushUrl()进行页面跳转,跳转到另外一个新建的页面“pages/LifeCircle2”中。并且跳转时携带一个对象数据,包含有id、name、age3个数据元素。

			//创建点击事件
          .onClick(()=>{
            //调用路由函数,进行页面的跳转,除了路径,同时带有一个对象,包括三个键值对元素
              router.pushUrl({
                url:"pages/LifeCircle2",
                params: {
                  id:'001',
                  name:'页面壹',
                  age:25
                }
              })
          })

(3)在另外一个页面LifeCircle2中接收数据,获取跳转对象的数据,利用键值对的键名进行取值。

let pageID = router.getParams()['id'] as string
let pageName = router.getParams()['name']
let pageAge = router.getParams()['age']

(4)最后在第二个页面LifeCircle2呈现从其他页面获取的数据。

Divider()
Text(pageID).fontSize(40).backgroundColor(Color.Yellow)
Text(pageName).fontSize(40).backgroundColor(Color.Yellow)
Text(pageAge).fontSize(40).backgroundColor(Color.Yellow)

(5)在第二个页面LifeCircle2内创建返回按钮和返回路由函数调用。

//验证页面跳转的数据传递按钮
        Button('点击返回')
          //创建点击事件
          .onClick(() => {
            //调用路由函数,进行页面的跳转,除了路径,同时带有一个对象,包括三个键值对元素
            router.back()
          })

3、数据传递两个页面的效果

LifeCircle效果:
01
LifeCircle2效果:
02

二、页面间数据共享(EntryAbility)

1、定义

这是一种全局的数据共享方法,可以在所有页面之间进行数据共享。实现方法就是在EntryAbility.ts文件中使用AppStorage.SetOrCreate()进行数据的定义,这个数据就可以在这个项目所有的页面中进行数据获取,通过AppStorage.Get()获取。

2、实现案例

(1)首先在roject/entry/src/main/ets/entryability/EntryAbility.ts文件中定义一个数据:
03
(2)然后在LifeCircle中进行数据获取:
04

3、避坑点

Previewer预览器中无法显示效果,因为在预览该页面时,EntryAbility.ts文件还没有执行,因此无法获取到页面之间共享的数据。
在这里插入图片描述
解决方法:使用本地模拟器、真机模拟器或者远程模拟器(建议),记得将默认的启动页面修改为需要调试的页面。如何修改请参考文章:HarmonyOS 修改App的默认加载的界面(ArkTS版本)本次使用的华为官方的远程模拟器,这样就可以看到效果了:
在这里插入图片描述

三、数据传递练习

1、EntryAbility页面
05
2、LifeCircle页面

import router from '@ohos.router'

//在应用程序的各个页面中取出由EntryAbility定义的共享数据:使用AppStorage.Get
let name:string = AppStorage.Get('AppName')

@Entry
@Component
struct LifeCircle {
  //调用从EntryAbility中获取的数据赋值给message,并在后方用Text呈现
  @State message: string = name
  @State isAppear:boolean = true

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Divider()
        Button('显示/隐藏子组件')
          .backgroundColor(Color.Orange)
          .onClick(()=>{
            this.isAppear = !this.isAppear
          })
        if(this.isAppear){
          LifeCircle_son()
        }

        //验证页面跳转的数据传递按钮
        Button('页面跳转')
          //创建点击事件
          .onClick(()=>{
            //调用路由函数,进行页面的跳转,除了路径,同时带有一个对象,包括三个键值对元素
              router.pushUrl({
                url:"pages/LifeCircle2",
                params: {
                  id:'001',
                  name:'页面壹',
                  age:25
                }
              })
          })

      }
      .width('100%')
    }
    .height('100%')
  }

  //页面显示
  onPageShow(){
    //打印出页面显示的提醒
    console.log('LifeCircle1: Page is onPageShow')
  }
  //页面隐藏
  onPageHide(){
    //打印出页面隐藏的提醒
    console.log('LifeCircle1: Page is onPageHide')
  }
  //页面返回:手机按钮上的返回
  onBackPress(){
    //打印出页面返回的提醒
    console.log('LifeCircle1: Page is onBackPress')
  }

  //aboutToAppear和aboutToDisappear也可以放在入口组件中,后者表示程序被sha死时调用的函数
  //组件即将出现时回调该接⼝
  aboutToAppear(){
    console.log('LifeCircle1: Page is 入口aboutToAppear')
  }
  //组件析构销毁时触发的函数
  aboutToDisappear(){
    console.log('LifeCircle1: Page is 入口aboutToDisappear')
  }
}

//子组件的内容
@Component
struct LifeCircle_son{
  build(){
    Column(){
      Text('页面1子组件内容').fontSize(40).fontStyle(FontStyle.Italic)
    }
  }

  //组件即将出现时回调该接⼝
  aboutToAppear(){
    console.log('LifeCircle1: Page is 子组件aboutToAppear')
  }

  //组件析构销毁时触发的函数
  aboutToDisappear(){
    console.log('LifeCircle1: Page is 子组件aboutToDisappear')
  }
}

3、LifeCircle2页面

import router from '@ohos.router';
//获取跳转对象的数据:利用键值对的键名进行取值
//从其他页面接收的数据不知道其变量,暂时作为string接收
let pageID = router.getParams()['id'] as string
let pageName = router.getParams()['name']
let pageAge = router.getParams()['age']

@Entry
@Component
struct LifeCircle2 {
  @State message: string = 'Hello World'
  @State isAppear:boolean = true

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Divider()
        Button('显示/隐藏子组件')
          .backgroundColor(Color.Orange)
          .onClick(() => {
            this.isAppear = !this.isAppear
          })
        if (this.isAppear) {
          LifeCircle_son()
        }

        //在第二个页面使用从其他页面获取的数据
        Divider()
        Text(pageID).fontSize(40).backgroundColor(Color.Yellow)
        Text(pageName).fontSize(40).backgroundColor(Color.Yellow)
        Text(pageAge).fontSize(40).backgroundColor(Color.Yellow)

        //验证页面跳转的数据传递按钮
        Button('点击返回')
          //创建点击事件
          .onClick(() => {
            //调用路由函数,进行页面的跳转,除了路径,同时带有一个对象,包括三个键值对元素
            router.back()
          })
      }
      .width('100%')
    }
    .height('100%')
  }

  //页面显示
  onPageShow(){
    //打印出页面显示的提醒
    console.log('LifeCircle2: Page is onPageShow')
  }
  //页面隐藏
  onPageHide(){
    //打印出页面隐藏的提醒
    console.log('LifeCircle2: Page is onPageHide')
  }
  //页面返回:手机按钮上的返回
  onBackPress(){
    //打印出页面返回的提醒
    console.log('LifeCircle2: Page is onBackPress')
  }

  //aboutToAppear和aboutToDisappear也可以放在入口组件中,后者表示程序被sha死时调用的函数
  //组件即将出现时回调该接⼝
  aboutToAppear(){
    console.log('LifeCircle2: Page is 入口aboutToAppear')
  }
  //组件析构销毁时触发的函数
  aboutToDisappear(){
    console.log('LifeCircle2: Page is 入口aboutToDisappear')
  }
}

//子组件的内容
@Component
struct LifeCircle_son{
  build(){
    Column(){
      Text('页面2子组件内容').fontSize(40).fontStyle(FontStyle.Italic)
    }
  }

  //组件即将出现时回调该接⼝
  aboutToAppear(){
    console.log('LifeCircle2: Page is 子组件aboutToAppear')
  }

  //组件析构销毁时触发的函数
  aboutToDisappear(){
    console.log('LifeCircle2: Page is 子组件aboutToDisappear')
  }
}
HarmonyOS 应用开发之UIAbility组件间交互(设备内) 一个UIAbility可以对应多个页面,在不同的场景下启动该UIAbility时需要展示不同的页面,例如从一个UIAbility的页面中跳转到另外一个UIAbility时,希望启动目标UIAbility的指定页面。UIAbility的启动分为两种情况:UIAbility冷启动和UIAbility热启动。UIAbility冷启动:指的是UIAbility实例处于完全关闭状态下被启动,这需要完整地加载和初始化UIAbility实例的代码、资源等。 阅读详情

相关推荐

HarmonyOS Next开发学习手册——Router切换Navigation

基本实现跟上述Router动态路由类似开发者自定义路由管理模块,各个提供路由页面的模块均依赖此模块;构建Navigation组件时,将NavPactStack注入路由管理模块,路由管理模块对NavPactStack进行封装,对外提供路由能力;各个路由页面不再提供组件,转为提供@build封装的构建函数,并再通过WrappedBuilder封装后,实现全局封装;各个路由页面将模块名称、路由名称、WrappedBuilder封装后构建函数注册如路由模块。

maniuT的博客 2529

鸿蒙Ability开发-Stage模型下Ability的创建和使用

在购物应用中,我们点击首页商品列表中的某一项商品,即可跳转到商品的详情页面。此时我们点击商品列表中的商品,系统会打开商品详情页,承载商品列表视图的EntryAbility将返回到后台,系统会执行EntryAbility的onBackground()方法,我们在DevEco Studio的控制台中可以观察相关生命周期函数的变换情况。UIAbilityContext模块提供允许访问特定Ability的资源的能力,包括对Ability的启动、停止的设置、获取caller通信接口、拉起弹窗请求用户授权等。

鸿蒙的技术博客 2061

华为MA5626 ONU开局配置实战:从零到业务就绪的完整命令手册

本文详细介绍了华为MA5626 ONU设备的开局配置全流程,包括物理连接、命令行初始化、业务VLAN划分、PoE功能配置及故障排查。通过实战命令手册,帮助网络工程师快速完成从设备上电到业务就绪的完整配置,特别适合FTTB场景部署。

weixin_26934905的博客 560

ArkTS-页面跳转(router)

鸿蒙开发-页面跳转 router

qq_41154522的博客 6582

【Unity】Unity性能分析解决方案——UPR

由Unity中国团队提供的一套性能优化解决方案,其是一系列性能工具的集合,并可将收集的数据进行可视化。

Davidorzs的博客 1008

某知名系统漏洞挖掘与利用思路探索

本文以安全研究为目的,分享对该套系统的代码审计和漏洞挖掘过程,文中所提到的漏洞均已提交给CNVD&CITIVD,请勿用做非法用途。

C20220511的博客 1902

鸿蒙 ArkTS 情绪模拟游戏开发实战:「分手模拟器」完整教程

每个场景包含标题、情景描述和三个选择。title: '第七天 · 挣扎',setting: '深夜,手机响了。是那个熟悉的头像发来的消息。',choices: [text: '点开消息,看到对方说"最近还好吗"。',reply: '你在对话框里输了又删,删了又输,最终还是没发出去。',},text: '静音手机,明天再看。',reply: '你翻了个身,告诉自己:明天再处理。},text: '删掉对话框,继续看剧。',reply: '你点开了一部喜剧,笑得越大声,心里越酸。},],

hsjdebbebdbdhd的博客 374

FPGA—ZYNQ_BD Block Design学习(一)

1.第一步:打开Vivado软件,创建或打开一个工程。2.第二步:在Block Design中添加arm核心,并将其配置为IP核。3.第三步:配置arm核心的外设信息,如DDR接口、时钟频率、UART接口等。4.第四步:完成Block Design中的模块互联,生成PL端的比特流。 5.第五步:导出PS端的硬件信息,包括arm IP核的外设、速度、引脚和地址等信息。1创建bd 需要有ddr以及uart和时钟配置外设io口,这里就是zynq的管脚规定好的,根据原理图用哪个个勾选哪一个。 对外设uart的配

m0_58129662的博客 1027

HarmonyOS系统应用开发基础入门

ArkUI基础入门知识点

Crowd_chips的博客 1892

什么是 SAPGUI 里的 Logon Group/Server

这意味着,不同的用户连接可以被分配到不同的应用服务器,以实现均衡的资源利用和降低某一服务器的负载压力。在这种配置下,欧洲的用户登录时选择“EUROPE_GROUP”,系统将自动选择一个位于欧洲的数据中心的服务器进行连接,这样不仅减少了网络延迟,还实现了服务器间的负载均衡。用户在 SAPGUI 中登录时,只需选择相应的 Logon Group(例如“FIN_GROUP”),系统就会自动将他们的连接请求分配到当前负载最小的应用服务器上,这种动态分配大大提升了系统的响应速度和稳定性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1069

RK3588开发笔记-Hailo AI模块调试

本文详细介绍了在RK3588开发板上调试HailoAI模块的全过程。首先概述了RK3588处理器的强大性能(4核A76+4核A55,6TOPS算力)和Hailo-8 AI加速模块的特点,重点阐述了通过PCIe接口连接两者的硬件方案。调试步骤包括:确认内核PCIe配置、编译Hailo驱动、下载固件文件并部署到指定目录,最后通过运行resnet模型验证模块性能(实测FPS达2456)。文中提供了完整的软件包下载地址和GitHub源码链接,为开发者实现类似AI加速方案提供了实用参考。

flypig has a dream! 960

HarmonyOS ArkTS API 24 Web 组件加载本地 html 网页文件网页与 ArkTS 双向通信交互教程

HarmonyOS 是华为推出的面向全场景的分布式操作系统,其应用开发框架基于 ArkUI 声明式编程范式,使用 ArkTS 作为主力开发语言。ArkTS 在 TypeScript 的基础上进行了扩展与约束,引入了 @Component、@State、@Builder 等装饰器,使开发者能以简洁、类型安全的方式构建高性能的移动应用界面。声明式 UI 的核心思想是"状态驱动视图"。开发者只需描述界面在某一状态下的样子,框架会自动在状态变化时重新渲染受影响的组件。这与传统的命令式 UI(如 Android Vi

wilbur1688的博客 245

搞懂 SAPUI5 Fiori 应用的 OData 授权维护:从 IWSG、IWSV 到 S_SERVICE 的完整实践

本文探讨了SAP Fiori项目中常见的授权问题及其解决方案。文章指出,开发人员常误将OData服务访问问题归咎于前端代码或配置,而实际上多因授权默认值未正确带入角色所致。详细分析了IWSG(前端服务组元数据)和IWSV(后端业务服务)两个关键对象的作用机制,强调应通过PFCG角色的Authorization Default入口维护服务对象,而非直接修改S_SERVICE授权对象。文章还提供了前后端授权配置的具体操作步骤,并特别提醒需同时配置前端和后端授权,才能确保应用完整可用性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 203

烘焙工坊移动应用源代码深度解析:基于HarmonyOS ArkTS API 24各内容页面通过 @ObjectLink 装饰器与共享数据模型建立双向绑定,实现数据的响应式传递

健身管理类应用与之前分析的外卖、招聘等应用有本质差异——它的核心数据不是"交易"或"任务",而是"时间序列的身体状态数据":每次训练有时长、卡路里、组数、重量;每次饮食有热量、蛋白质、碳水、脂肪;每周有运动时长趋势图。这些数据的共同特征是"随时间积累,用户需要横向对比和趋势分析"。这导致健身App的数据层设计必须从第一天就考虑"历史数据查询"和"多维度聚合"的需求,而非仅关注当前单条记录的增删改查。健身应用的用户行为模式也有独特之处:用户使用健身App的目标是"坚持",而不是"一次性完成任务"。这意味着激励

qq_17776737的博客 141

【八股】JUC并发编程篇

👉抽象队列同步器,就是一种锁,内部维护的是一个先进先出的双向队列,队列中存储的是排队的线程,用state来标识是否有线程获得锁【0是无锁状态】👉流程:当一个线程拿到锁后会修改state = 1,这时如果有其他线程访问则会进入队列进行排序,直到state变成0后,队头线程才会拿到锁。在对state进行修改时,用的是CAS操作,所以可以保证原子性。👉它可以实现公平锁或非公平锁【默认】,上述是一个公平锁。如果新线程和队头线程抢锁资源就是非公平锁。

qq_44768318的博客 551

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HarmonyOS ArkTS API 24+ 实战:从零搭建注塑工程师助手首页与底部导航

学习 ArkTS 时,一个常见困难是:组件语法看懂了,真正开始做项目却不知道数据、状态和页面应该放在哪里。为了避开“只讲几个控件,写完仍然不会组织项目”的问题,本文从一个真实业务需求出发,搭建“注塑工程师助手”的首个可运行版本。这款 App 面向注塑现场,后续会逐步记录注塑机档案、调机参数、生产批次、不良原因和异常闭环。本篇先完成工程骨架、首页现场数据看板,以及“首页、机台、调机、异常、报表”五项底部导航。

kathy_tan的博客 438

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

基于 HarmonyOS ArkTS API 24 LocalStorage 页面级持久化存储页面销毁后数据保留实现方式

本应用是一个面向屋顶露台与阳台改造场景的垂直电商加服务平台。业务覆盖面非常宽:从露台设计方案展示,到户外家具建材商城,再到防水防腐施工服务、改造案例展示、邻里社区晒台以及用户个人中心,六大功能模块被组织在一个底部 Tab 导航的单页面架构中。技术选型上,整个应用采用纯 ArkTS 单文件实现,没有引入额外的页面路由(Router)或导航组件。所有界面切换通过状态变量 驱动,在 容器中根据当前激活的 Tab 值条件渲染不同的子组件。这种"单页多 Tab + 条件渲染"的模式,在中小型应用中非常高效,避免了

wilbur1688的博客 226

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HarmonyOS ArkTS API 24|字符串数字转换技巧,number 转 string、数值运算后格式化展示避免精度异常

引言在当今移动互联网高速发展的时代背景下,跨平台应用开发框架层出不穷,而华为推出的 HarmonyOS 操作系统凭借其分布式架构和声明式 UI 编程范式,正在为开发者提供一个全新的技术选择。HarmonyOS 6.1.1 作为华为鸿蒙操作系统的重要版本迭代,不仅在前代基础上进一步优化了系统底层的渲染性能和内存管理机制,还为开发者带来了更加丰富完善的 ArkTS 语言特性和 ArkUI 声明式组件库。基于 HarmonyOS API 24 的应用开发能力,开发者可以充分利用系统级的能力来构建出具有原生体验的高

2401_89578244的博客 353

HarmonyOS ArkTS API 24 @Provide 与 @Consume 跨多层组件状态传参爷孙组件通信最佳实践

本应用是一款面向宠物家庭的电商服务平台,集成了宠物友好家具浏览、防抓面料选购、家居改造服务预约、设计案例展示以及个人中心管理五大核心模块。整体采用暖棕色系(奶油米、暖可可棕、蜜橙、奶咖)设计风格,营造温馨的宠物友好视觉氛围。从技术栈角度而言,本应用基于鸿蒙 ArkTS 声明式开发范式构建。ArkTS 是 TypeScript 的扩展超集,在保留类型系统优势的同时,引入了 、、、 等装饰器,用于实现声明式 UI 组件化开发。应用整体采用单文件架构,所有数据模型、工具函数、内容组件和主入口均集中在同一文件内,这

wilbur1688的博客 228

基于HarmonyOS ArkTS API 24响应式编程模型的核心机制之一,与 Vue.js 的 reactive 或 MobX 的 observable 在理念上相通

在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用开发语言,正在从传统的命令式 UI 开发范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求开发者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。本文以一个名为"智能账单"的三标签页记账应用为切入点,逐层拆解其数据模型设计、@Builder 组件复用策略、@State 状态管理机制、条件渲染导航模式,以及静态写死渲染与动态循环渲染之间的性能权衡,为

jin421352的博客 159

腰鼓制作基于HarmonyOS ArkTS API 24在 ArkTS 中,TextInput 组件的 onChange 回调返回的值类型是字符串,将数值字段以字符串形式存储在状态中

在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用开发语言,正在从传统的命令式 UI 开发范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求开发者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。本文以一个名为"智能账单"的三标签页记账应用为切入点,逐层拆解其数据模型设计、@Builder 组件复用策略、@State 状态管理机制、条件渲染导航模式,以及静态写死渲染与动态循环渲染之间的性能权衡,为

jin421352的博客 195

基于HarmonyOS ArkTS API 24景泰蓝工艺的每个卡片包含一个数字(由 stripCount 方法计算)和一个标签名称(从 STRIP_NAMES 数组获取)

健身管理类应用与之前分析的外卖、招聘等应用有本质差异——它的核心数据不是"交易"或"任务",而是"时间序列的身体状态数据":每次训练有时长、卡路里、组数、重量;每次饮食有热量、蛋白质、碳水、脂肪;每周有运动时长趋势图。这些数据的共同特征是"随时间积累,用户需要横向对比和趋势分析"。这导致健身App的数据层设计必须从第一天就考虑"历史数据查询"和"多维度聚合"的需求,而非仅关注当前单条记录的增删改查。健身应用的用户行为模式也有独特之处:用户使用健身App的目标是"坚持",而不是"一次性完成任务"。这意味着激励

jin421352的博客 1079

基于 HarmonyOS ArkTS API 24|MaxLines 限制单行标签文字行数,防止标签文字换行挤乱流式标签布局

鸿蒙HarmonyOS从架构设计之初就确立了声明式UI的开发范式。与传统的命令式UI开发不同,声明式UI要求开发者描述"界面应该是什么样子",而不是"如何一步步构建界面"。这种范式带来了诸多优势:代码更加简洁、可读性更强、状态与视图的同步由框架自动完成,开发者无需手动调用、等方法来更新界面。在ArkTS中,UI的构建是通过链式调用来完成的。每一个UI组件(如、、、等)都可以通过点号语法链式地设置属性。这种设计借鉴了现代UI框架的优秀实践,同时针对鸿蒙的分布式渲染引擎进行了底层优化,使得UI的构建过程既直观又

2401_89578244的博客 201

HarmonyOS ArkTS API 24实现声明式 UI 框架与 @Builder 组件复用模式构建三标签页智能账单应用

本文将深入剖析一个基于 HarmonyOS ArkTS 开发的健身打卡应用。该应用集成了月历热力图、打卡时间轴、挑战任务、健身排行四大核心模块,采用了 HarmonyOS 声明式 UI 开发范式,充分运用了 ArkTS 的状态管理、组件化构建、响应式数据绑定等特性。通过逐段解析源码,我们将深入理解 ArkTS 在实际业务场景中的架构设计、状态流转和 UI 渲染机制。应用的整体架构遵循"数据驱动视图"的设计理念:底层定义严谨的数据模型与接口契约,中层通过配置化中心管理静态资源,上层以主组件统筹状态与视图,各

2301_79651252的博客 164

在线课程学习应用HarmonyOS ArkTS API 24关注点分离(Separation of Concerns)的设计使得数据逻辑和视图逻辑可以独立演进,降低了耦合度

在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用开发语言,正在从传统的命令式 UI 开发范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求开发者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。本文以一个名为"智能账单"的三标签页记账应用为切入点,逐层拆解其数据模型设计、@Builder 组件复用策略、@State 状态管理机制、条件渲染导航模式,以及静态写死渲染与动态循环渲染之间的性能权衡,为

2401_86031952的博客 207

基于HarmonyOS API 24实战解析构建钓鱼战记记录应用在 ArkTS 的响应式系统中,数组的操作(push、pop、splice 等)同样会被追踪

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2301_79516720的博客 212
上一篇: HarmonyOS 修改App的默认加载的界面(ArkTS版本)(十七)
下一篇: 鸿蒙4.0开发笔记之ArkTS语法项目实战【实现一个待买待做列表】(十九)
鸿蒙Next
鸿蒙Next 优质创作者: python技术领域 优质创作者: python技术领域
博客等级 码龄7年 2万+粉丝 300原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿蒙Next

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值