ArkUI 状态管理与页面交互核心:@State、弹窗与路由

一、@State:组件内部的「状态大脑」

核心本质

@State是 ArkUI 中实现数据驱动视图的基础装饰器,它就像组件的「内部记忆」,专门用来存储和管理组件自身的状态数据。当数据发生变化时,页面会自动同步更新,无需手动刷新 UI。

1.1.标准书写语法

格式:@State 变量名: 数据类型 = 默认初始值

实例:

1.2核心特性

私有性:仅当前组件内部可读写,父子组件无法直接访问

响应式更新:变量重新赋值后,UI 自动刷新

基础类型优先:适合string/number/boolean等简单数据

必须赋初始值:声明时必须指定默认值,否则编译报错

二、弹窗:页面交互反馈组件

弹窗是应用与用户交互的关键组件,它会在当前页面之上弹出一个临时窗口,用于提示信息、确认操作或收集输入,不会改变页面路由结构。

2.1代码演示

系统弹窗(AlertDialog):用于简单的确认 / 提示场景

与 @State 的联动

弹窗的显隐完全由@State布尔变量控制,通过修改变量值来触发弹窗的打开 / 关闭,实现了状态与视图的同步。

三、路由:应用页面的「导航地图」

路由(@ohos.router)是 ArkUI 中管理多页面跳转的核心模块,它就像应用的「导航系统」,负责页面之间的切换、返回和参数传递,让用户可以在不同功能页面间流畅操作。

3.1导入模版

import router from '@ohos.router'

3.2代码演示

在 DevEco Studio(鸿蒙开发工具,基于 IntelliJ IDEA 内核) 中,连续按两次Shift键,会调出 Search Everywhere(随处搜索) 窗口。

写完跳转页面后,必须在main_pages.json(FA 模型)的页面列表中,添加该页面的完整路径。

3.3核心属性与方法

方法 / 属性作用
pushUrl()跳转到新页面,保留当前页
replaceUrl()跳转到新页面,替换当前页
back()返回上一页
getParams()获取上一页传递的参数
clear()清除页面栈,仅保留当前页