news 2026/7/2 20:21:30

ArkTS 入门实战:构建一个交互式信息展示页面

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ArkTS 入门实战:构建一个交互式信息展示页面

一、代码核心功能概览

这段代码实现了以下功能:

  1. 信息输入:用户可以在文本框中输入任意内容。
  2. 状态切换:通过一个按钮来切换布尔状态(开 / 关)。
  3. 模式切换:通过一个开关组件来切换 “夜览模式”,改变整个页面的背景色。
  4. 实时反馈:页面会实时显示用户输入的内容以及两个开关的当前状态。

二、核心知识点拆解

1. 组件定义:@Entry@Component

typescript

运行

@Entry @Component struct Examp1 { // ... }
  • @Component: 这是一个装饰器,用于声明一个自定义组件。struct Examp1由此成为一个可复用的 UI 单元。每个组件都必须实现build()方法来描述其 UI 结构。
  • @Entry: 这同样是一个装饰器,用于标记当前组件作为应用的入口组件。一个应用只能有一个@Entry组件,它是 UI 界面的起点。
2. 状态管理:@State

typescript

运行

@State msg:string="" @State isOpen:boolean=false @State iskai:boolean=false
  • @State: 这是 ArkTS 中最核心的状态管理装饰器。被它标记的变量(如msg,isOpen,iskai)是组件内部的状态数据。
  • 核心特性:当这些状态变量的值发生变化时,ArkUI 框架会自动检测到变化,并重新渲染(rebuild)依赖这些变量的 UI 部分。这就是所谓的 “状态驱动 UI 更新”。
3. UI 构建:build()方法与布局组件

typescript

运行

build() { Column({space:60}){ // ... Row() { // ... } } }
  • build()方法: 所有@Component都必须实现此方法。它是用来描述 UI 结构的地方,返回一个组件树。
  • 布局组件:
    • Column: 垂直布局容器,子组件从上到下依次排列。{space:60}设置了子组件之间的垂直间距为 60vp。
    • Row: 水平布局容器,子组件从左到右依次排列。
    • 通过嵌套ColumnRow,我们可以构建出复杂的页面布局。
4. 基础 UI 组件详解
  • Text: 用于显示文本内容。可以通过.fontSize(),.width(),.textAlign()等方法设置样式。
  • TextInput: 用于用户输入文本。
    • placeholder: 设置输入框为空时的提示文字。
    • .onChange(): 输入内容变化时的回调事件,我们在这里更新msg状态变量。
  • Button: 按钮组件,响应用户点击。
    • 按钮的标题使用了条件渲染this.isOpen ? "开关已打开" : "开关已关闭",根据isOpen的状态动态显示不同文本。
    • .onClick(): 点击事件的回调,我们在这里取反isOpen的值。
  • Toggle: 开关组件,这里使用了ToggleType.Switch样式。
    • .onChange(): 开关状态变化时的回调,我们在这里取反iskai的值。
5. 数据绑定与条件渲染

ArkTS 采用声明式 UI 范式,UI 是状态数据的直观反映。

  • 数据绑定:

    • TextInputtext属性绑定到this.msg
    • Text的内容直接绑定到this.msg,this.isOpen,this.iskai
    • ColumnbackgroundColor绑定到this.iskai,实现了夜览模式的背景色切换。
  • 条件渲染:

    • 三元表达式是实现条件渲染的常用方式:
      • this.isOpen ? "开关已打开" : "开关已关闭"
      • this.iskai ? 0xd3d3d3 : Color.White
    • 当状态变量变化时,这些表达式的结果也会随之变化,从而触发 UI 的更新。

三、完整代码逻辑解析

  1. 初始化: 页面加载时,msg为空字符串,isOpeniskai均为false
  2. 输入交互: 用户在TextInput中输入文字,onChange事件触发,msg变量被更新。绑定了msgText组件会自动刷新,显示最新输入的内容。
  3. 按钮交互: 用户点击按钮,onClick事件触发,isOpen变量取反。绑定了isOpen的按钮标题和下方的状态文本会同步更新。
  4. 开关交互: 用户切换Toggle开关,onChange事件触发,iskai变量取反。绑定了iskai的背景色和状态文本会同步更新,实现 “夜览模式” 的切换。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 20:17:49

降重后论文逻辑全乱,有哪些真正值得拥有的的降AIGC平台推荐?

毕业论文降AIGC,核心在语义重构 学术润色 去AI痕迹,免费与付费工具结合更高效。下面按中文、英文、免费/付费分类推荐,附实测效果与适用场景。 一、中文论文降重工具(最常用) 1. 千笔AI(综合全能首选&…

作者头像 李华
网站建设 2026/7/2 20:17:38

2026揭阳黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式

揭阳街头巷尾的黄金铂金白银回收门店鳞次栉比,看似选择众多实则鱼龙混杂,报价虚高、克扣成色、暗设门槛的乱象屡见不鲜。为帮市民甄别靠谱变现渠道,小编实地走访多家店铺,逐一核验资质与交易流程,筛选出本地五家正规诚…

作者头像 李华
网站建设 2026/7/2 20:17:16

Photon光影包终极指南:为Minecraft打造电影级视觉体验的完整教程

Photon光影包终极指南:为Minecraft打造电影级视觉体验的完整教程 【免费下载链接】photon A gameplay-focused shader pack for Minecraft 项目地址: https://gitcode.com/gh_mirrors/photon3/photon Photon光影包是一款专注于游戏体验的Minecraft着色器包&a…

作者头像 李华
网站建设 2026/7/2 20:16:24

[AI][编程模型]Larrabee 介绍

Larrabee 编程背景 Larrabee 是 Intel 早期提出的一种多核架构(被视为 Xeon Phi 的前身),其编程模型主要具有以下特点: SPMD(Single-Program Multiple-Data)模型: 即多个处理核心执行相同的程序…

作者头像 李华
网站建设 2026/7/2 20:15:02

Three.js 模型视图教程

模型视图 Model Views ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 用 Box3 FOV 反算「刚…

作者头像 李华