鸿蒙 ArkUI @State 响应式数据双向绑定实训博客
一、实训介绍本次实训围绕State状态变量完成三组交互案例分别实现输入框实时回显、独立夜览切换页面、多状态综合联动页面掌握文本数据、布尔开关、页面样式联动刷新的基础交互逻辑。二、案例 1输入框实时回显 Examp1代码etsEntry Component struct Examp1{ State msg:string build() { Column({space:25}){ Text(请输入信息) .fontSize(26) .width(100%) .textAlign(TextAlign.Start) TextInput({text:this.msg,placeholder:}) .width(100%) .height(50) .backgroundColor(#F5F5F5) .fontSize(24) .onChange((value:string){ this.msg value }) Column({space:15}){ Text(你输入的内容是) .fontSize(26) .textAlign(TextAlign.Start) .width(100%) .padding({top:15}) Text(this.msg) .width(100%) .fontSize(24) .fontColor(Color.Black) } .backgroundColor(#F5F5F5) .width(100%) .height(55%) .borderRadius(12) .padding(15) } .width(100%) .height(100%) .padding(20) } }功能说明使用字符串类型State变量绑定输入框输入内容通过onChange实时赋值下方文本框同步展示输入内容实现文本双向联动效果。三、案例 2独立夜览模式切换 Examp2简易版代码etsEntry Component struct Examp2{ State isOpen:boolean false build() { Column(){ Row(){ Text(夜览模式) .fontSize(30) Toggle({type:ToggleType.Switch}) .width(35%) .height(50) .onChange((){ this.isOpen !this.isOpen }) } Text(this.isOpen?夜览模式已开启:夜览模式已关闭) } .width(100%) .height(100%) .backgroundColor(this.isOpen?0xd3d3d3:Color.White) } }功能说明布尔状态绑定滑动开关切换开关时同步修改提示文字与页面整体背景色模拟深色 / 浅色主题切换功能。四、案例 3多状态综合联动页面 Examp2完整版代码etsEntry Component struct Examp2{ State msg:string State isOpen:boolean false State isNight:boolean false build() { Column({space:30}){ Text(请输入信息) .fontSize(32) .width(100%) .textAlign(TextAlign.Start) TextInput({ text: this.msg, placeholder: 请输入内容 }) .width(100%) .height(50) .backgroundColor(#F5F5F5) .fontSize(22) .onChange((value:string){ this.msg value }) Button(this.isOpen ? 开关已打开 : 开关已关闭) .width(100%) .height(55) .fontSize(20) .fontColor(Color.White) .backgroundColor(#007DFF) .borderRadius(30) .onClick((){ this.isOpen !this.isOpen }) Row(){ Text(夜览模式) .fontSize(32) Toggle({type:ToggleType.Switch}) .width(38%) .height(50) .onChange((){ this.isNight !this.isNight }) } .width(100%) Column({space:20}){ Text(你输入的内容是) .fontSize(30) .width(100%) .textAlign(TextAlign.Start) Text(this.msg) .width(100%) .fontSize(26) Row(){ Text(开关的状态) .fontSize(30) Text(this.isOpen ? 开启 : 关闭) .fontSize(30) .fontColor(Color.Red) } .width(100%) Row(){ Text(夜览模式) .fontSize(30) Text(this.isNight ? 已开启 : 已关闭) .fontSize(30) .fontColor(Color.Red) } .width(100%) } .width(100%) .height(52%) .backgroundColor(#F5F5F5) .borderRadius(14) .padding(25) } .width(100%) .height(100%) .padding(30) .backgroundColor(this.isNight ? 0xd3d3d3 : Color.White) } }功能说明页面同时维护三组独立状态文本输入状态、按钮开关状态、夜览模式状态。输入框输入实时展示点击按钮切换自身文字并同步状态提示滑动开关控制页面背景色底部实时展示全部状态信息实现多数据同时联动刷新。五、实训总结State是 ArkUI 实现动态交互核心被修饰变量修改后页面自动刷新字符串类型状态可绑定 TextInput完成输入内容实时回显布尔类型状态搭配 Button、Toggle 控件可控制文字、页面背景等样式动态切换单页面可同时定义多个State变量互不干扰实现多组交互逻辑共存。

相关新闻

Loop Engineering实践指南:循环层级、工具生态与生产模式

Loop Engineering实践指南:循环层级、工具生态与生产模式

摘要 在Loop Engineering的概念框架确立之后,业界对其实践路径的探索迅速展开。LangChain团队从框架层面提出了四层循环堆叠模型,Cobus Greyling则在GitHub开源仓库中提供了可直接落地的模式库、CLI工具链和分阶段上线策略。本文综合上述实践视角&#…

2026/6/26 21:18:31阅读更多 →
goto用法

goto用法

goto用法这里需要指针直接给数组就行。变化中间的

2026/6/26 21:18:31阅读更多 →
HarmonyOS7 悬浮窗、分屏、平行视界怎么配合?多形态窗口实战

HarmonyOS7 悬浮窗、分屏、平行视界怎么配合?多形态窗口实战

文章目录前言多窗口体系全景EasyGo 新特性:应用内分屏比价设备形态适配策略实战:智能助手的分屏比价布局悬浮窗场景:语音助手常驻踩坑记录我的感受前言 上篇我们玩了互动卡片和闪控窗,今天继续聊窗口——但这次是整个多窗口体系的…

2026/6/26 21:18:31阅读更多 →
【企业级IDE选型避坑手册】:MyEclipse用户迁移到IntelliJ IDEA时92.6%踩过的3个致命配置陷阱(附自动迁移脚本+兼容性检测工具)

【企业级IDE选型避坑手册】:MyEclipse用户迁移到IntelliJ IDEA时92.6%踩过的3个致命配置陷阱(附自动迁移脚本+兼容性检测工具)

更多请点击: https://kaifayun.com 第一章:MyEclipse与IntelliJ IDEA的核心架构差异解析 MyEclipse与IntelliJ IDEA虽同为Java集成开发环境(IDE),但其底层架构设计理念存在根本性分歧:MyEclipse基于Eclips…

2026/6/26 22:28:40阅读更多 →
1、C++ 基础知识笔记

1、C++ 基础知识笔记

C 是一门庞大且复杂的语言。为了帮你高效复习,我将 C 基础知识体系化为 7 大核心模块。这份清单涵盖了从语法基础到现代 C(C11/14/17/20)的关键特性,适合作为面试准备或项目开发的自查表。1. 基础语法与数据类型 这是 C 的基石&am…

2026/6/26 22:28:40阅读更多 →
Cesium 蓝色教程

Cesium 蓝色教程

蓝色 蓝色 ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 Scene / Camera / Renderer 标准…

2026/6/26 22:28:40阅读更多 →
Windows 部署 AI 自动化工具 OpenClaw 网关加载慢、程序闪退处理办法

Windows 部署 AI 自动化工具 OpenClaw 网关加载慢、程序闪退处理办法

🔍前言 OpenClaw(圈内昵称小龙虾)是当下热度很高的开源 AI 智能体项目,GitHub 累计收获 28 万以上星标。和常规对话类 AI 不同,它能够读懂自然语言并自动执行电脑本地操作,被很多职场人称作数字员工。本文…

2026/6/26 22:28:40阅读更多 →
3分钟快速找回遗忘QQ账号的终极指南:手机号查QQ号完整教程

3分钟快速找回遗忘QQ账号的终极指南:手机号查QQ号完整教程

3分钟快速找回遗忘QQ账号的终极指南:手机号查QQ号完整教程 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经因为忘记QQ号而无法登录重要账号?或者换了新手机后,只记得手机号却找不到对应…

2026/6/26 22:28:40阅读更多 →
电力电子调试防护罩设计与应用实践

电力电子调试防护罩设计与应用实践

1. 项目背景与需求解析在电力电子实验室工作十年,我最头疼的就是调试大功率变流器时那些突如其来的"烟花表演"。去年团队里一台50kW的逆变器在满载测试时IGBT模块突然炸裂,飞溅的金属碎片直接击穿了隔壁示波器的屏幕,那次事故让我们…

2026/6/26 22:23:40阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/26 11:03:22阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/26 4:15:25阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/26 9:29:01阅读更多 →
HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

一、前言:企业运维痛点与资源价值自博通收购 VMware 之后,原 VMware 公开免费下载渠道全面关闭,企业运维人员想要获取适配 HPE 慧与服务器的 ESXi 9 原厂镜像,必须注册博通账号、绑定有效授权才能下载,无授权账号无法获…

2026/6/26 0:02:15阅读更多 →
Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin作为一门现代编程语言,与Java的互操作性一直是其核心优势之一。为了让Kotlin代码能够无缝对接Java,Kotlin提供了多种注解来优化互操作体验,其中JvmStatic和JvmField是两个关键注解。它们分别用于解决静态成员和字段在Java中的访问问题&…

2026/6/26 0:02:15阅读更多 →
深入解析musl libc中的mmap实现源码

深入解析musl libc中的mmap实现源码

最近在阅读musl libc源码时,发现其mmap的实现非常精妙,特分享给大家。 一、代码整体结构 这段代码实现了__mmap函数,并通过weak_alias导出为mmap。这是典型的musl libc风格——提供弱符号以便用户可以重写。 weak_alias(__mmap, mmap); 二…

2026/6/26 0:02:15阅读更多 →