构建第一个ArkTS之声明式UI描述

这篇具有很好参考价值的文章主要介绍了构建第一个ArkTS之声明式UI描述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。

创建组件

根据组件构造方法的不同,创建组件包含有参数和无参数两种方式。

说明

创建组件时不需要new运算符。

无参数

如果组件的接口定义没有包含必选构造参数,则组件后面的“()”不需要配置任何内容。例如,Divider组件不包含构造参数:

Column() {
  Text('item 1')
  Divider()
  Text('item 2')
}

有参数

如果组件的接口定义包含构造参数,则在组件后面的“()”配置相应参数。

  • Image组件的必选参数src。

  • Image('https://xyz/test.jpg')
  • Text组件的非必选参数content。

     
    // string类型的参数
    Text('test')
    // $r形式引入应用资源,可应用于多语言场景
    Text($r('app.string.title_value'))
    // 无参数形式
    Text()
  • 变量或表达式也可以用于参数赋值,其中表达式返回的结果类型必须满足参数类型要求。例如,设置变量或表达式来构造Image和Text组件的参数。
     
      
    1. Image(this.imagePath)
      Image('https://' + this.imageUrl)
      Text(`count: ${this.count}`)

配置属性

属性方法以“.”链式调用的方式配置系统组件的样式和其他属性,建议每个属性方法单独写一行。

  • 配置Text组件的字体大小。

     
      
    1. Text('test')
        .fontSize(12)
  • 配置组件的多个属性。

     
      
    1. Image('test.jpg')
        .alt('error.jpg')    
        .width(100)    
        .height(100)
  • 除了直接传递常量参数外,还可以传递变量或表达式。

     
      
    1. Text('hello')
        .fontSize(this.size)
      Image('test.jpg')
        .width(this.count % 2 === 0 ? 100 : 200)    
        .height(this.offset + 100)
  • 对于系统组件,ArkUI还为其属性预定义了一些枚举类型供开发者调用,枚举类型可以作为参数传递,但必须满足参数类型要求。

    例如,可以按以下方式配置Text组件的颜色和字体样式。
     
      
    1. Text('hello')
        .fontSize(20)
        .fontColor(Color.Red)
        .fontWeight(FontWeight.Bold)

配置事件

事件方法以“.”链式调用的方式配置系统组件支持的事件,建议每个事件方法单独写一行。

  • 使用箭头函数配置组件的事件方法。

     
      
    1. Button('Click me')
        .onClick(() => {
          this.myText = 'ArkUI';
        })
  • 使用匿名函数表达式配置组件的事件方法,要求使用bind,以确保函数体中的this指向当前组件。

     
      
    1. Button('add counter')
        .onClick(function(){
          this.counter += 2;
        }.bind(this))
  • 使用组件的成员函数配置组件的事件方法。

     
      
    1. myClickHandler(): void {
        this.counter += 2;
      }
      ...
      Button('add counter')
        .onClick(this.myClickHandler.bind(this))
  • 使用声明的箭头函数,可以直接调用,不需要bind this。
     
      
    1. fn = () => {
        console.info(`counter: ${this.counter}`)
        this.counter++
      }
      ...
      Button('add counter')
        .onClick(this.fn)

配置子组件

如果组件支持子组件配置,则需在尾随闭包"{...}"中为组件添加子组件的UI描述。Column、Row、Stack、Grid、List等组件都是容器组件。

  • 以下是简单的Column组件配置子组件的示例。

     
      
    1. Column() {
        Text('Hello')
          .fontSize(100)
        Divider()
        Text(this.myText)
          .fontSize(100)
          .fontColor(Color.Red)
      }
  • 容器组件均支持子组件配置,可以实现相对复杂的多级嵌套。文章来源地址https://www.toymoban.com/news/detail-849852.html

     
      
    1. Column() {
        Row() {
          Image('test1.jpg')
            .width(100)
            .height(100)
          Button('click +1')
            .onClick(() => {
              console.info('+1 clicked!');
            })
        }
      }

到了这里,关于构建第一个ArkTS之声明式UI描述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • SpringBoot基础之声明式事务和切面事务和编程式事务

    SpringBoot基础之声明式事务和切面事务和编程式事务

    事务管理对于企业应用来说是至关重要的,当出现异常情况时,它也可以保证数据的一致性。 springBoot中两种事务的实现方式, 编程式事务配置和声明式事务配置还有切面事务 还有以后的分布式事务 详情参考 这篇 原子性(Atomicity): 事务是一个原子操作,由一系列动作组成

    2024年02月02日
    浏览(11)
  • SpringCloud系列篇:核心组件之声明式HTTP客户端组件【远程消费】

    SpringCloud系列篇:核心组件之声明式HTTP客户端组件【远程消费】

    接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 🥳🥳Welcome Huihui\\\'s Code World ! !🥳🥳 一. 远程消费组件是什么 二. 远程消费组件的详解 场景模拟 代码实操 1.生产者 2.消费者 3.复杂参数的处理 DTO 属性赋值          声明式HTTP客户端组件是一种用于简化HTTP请求的

    2024年02月02日
    浏览(10)
  • Swift Combine 通过用户输入更新声明式 UI 从入门到精通十五

    Swift Combine 通过用户输入更新声明式 UI 从入门到精通十五

    Combine 系列 Swift Combine 从入门到精通一 Swift Combine 发布者订阅者操作者 从入门到精通二 Swift Combine 管道 从入门到精通三 Swift Combine 发布者publisher的生命周期 从入门到精通四 Swift Combine 操作符operations和Subjects发布者的生命周期 从入门到精通五 Swift Combine 订阅者Subscriber的生命周

    2024年02月20日
    浏览(11)
  • WouoUI-PageVersion 一个用于快速构建具有丝滑OLED_UI动画的项目

    WouoUI-PageVersion 一个用于快速构建具有丝滑OLED_UI动画的项目

    简介致谢 Air001的TestUI例子的b站的演示视频 Air001的LittleClock例子的b站演示视频: https://www.bilibili.com/video/BV1J6421g7H1/ Stm32的TestUI例子的b站演示视频: https://www.bilibili.com/video/BV1mS421P7CZ/ 所有演示的工程文件都使用zip压缩包上传在对应的文件夹下。 本项目的Github链接为:https://githu

    2024年02月22日
    浏览(11)
  • 华为云云耀云服务器L实例评测|Python Selenium加Chrome Driver构建UI自动化测试实践

    华为云云耀云服务器L实例评测|Python Selenium加Chrome Driver构建UI自动化测试实践

    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验, AWS/阿里云资深使用用户 ,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏 随着云计算时代

    2024年02月08日
    浏览(13)
  • 【学习笔记】鸿蒙UI开发-布局(ArkTs)

    GitHub:LearnHos 码云:LearnHos 拉伸能力 定义 当父容器的尺寸发生变化时,增加或减少的空间 全部分配 给父容器内的 指定子组件 场景1:自动填充 实现:容器组件-Row + 基础组件Blank 场景2:按指定的比例拉伸或收缩 拉伸 当父容器在主轴方向上的尺寸 大于 所有子组件的尺寸之

    2024年02月05日
    浏览(14)
  • 【鸿蒙开发】第七章 ArkTS语言UI范式-基础语法

    【鸿蒙开发】第七章 ArkTS语言UI范式-基础语法

    通过前面的章节,我们基本清楚鸿蒙应用开发用到的语言和项目基本结构,在【鸿蒙开发】第四章 Stage应用模型及项目结构也提到过ArkTS的UI范式的 基本语法 、 状态管理 、 渲染控制 等能力,简要介绍如下: 基本语法 : ArkTS 定义了 声明式UI描述 、 自定义组件 和 动态扩展

    2024年02月03日
    浏览(11)
  • 鸿蒙开发笔记(一):ArkTS概述及声明式UI的使用

    鸿蒙开发笔记(一):ArkTS概述及声明式UI的使用

    ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。 ArkTS在TS的基础上主要扩展了如下能力: 基本语法 :ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力,再配合ArkUI开发

    2024年01月17日
    浏览(9)
  • harmonyOS 开发之UI开发(ArkTS声明式开发范式)概述

    harmonyOS 开发之UI开发(ArkTS声明式开发范式)概述

    万物互联、全新分布式操作系统。(涉及分布式处理、分布式管理、分布式连接等) 实现硬件互助,资源共享。 面向开发者,一次开发、多端部署 统一OS,弹性部署 封面图

    2024年02月08日
    浏览(43)
  • Element UI中的Descriptions描述列表

    Element UI中的Descriptions描述列表

    使用html做一个简单的展示页面,包含Descriptions描述列表 Descriptions官方文档 基础用法 完整代码:

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包