Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第4章:UI组件基础

第4章:UI组件基础

4.4 组件属性与方法

4.4.1 组件属性的核心概念

ArkTS中的UI组件通过属性(Properties)来定义其外观和行为。属性是组件的可配置参数,通常包括:

  • 基础属性:如宽度、高度、背景色等
  • 布局属性:如flex布局相关参数
  • 交互属性:如点击事件、触摸反馈等
@Component
struct MyComponent {
  @State isActive: boolean = false

  build() {
    Column() {
      Text('Hello ArkTS')
        .fontSize(20)  // 字体大小属性
        .fontColor(this.isActive ? '#FF0000' : '#000000')  // 动态颜色属性
        .onClick(() => {  // 点击事件属性
          this.isActive = !this.isActive
        })
    }
  }
}

4.4.2 常用内置属性分类

1. 样式属性

属性名类型说明
widthnumber组件宽度
heightnumber组件高度
backgroundColorColor背景色
opacitynumber透明度(0.0-1.0)

2. 布局属性

属性名类型说明
flexGrownumber弹性布局扩展比例
flexShrinknumber弹性布局收缩比例
alignSelfItemAlign自身对齐方式

3. 事件属性

属性名类型说明
onClick() => void点击事件回调
onTouch(event: TouchEvent) => void触摸事件回调

4.4.3 组件方法的使用

组件方法分为两类:

  1. 内置方法:由框架提供的基础功能

    TextInput().focus()  // 获取焦点方法
    Scroll().scrollTo({x: 0, y: 100})  // 滚动到指定位置
    
  2. 自定义方法:通过@Builder装饰器创建

    @Builder function fancyButton(text: string) {
      Button(text)
        .width(100)
        .height(44)
        .borderRadius(22)
    }
    

4.4.4 属性与方法的动态绑定

通过状态管理实现动态响应:

@Component
struct DynamicComponent {
  @State counter: number = 0

  build() {
    Column() {
      Button(`Click ${this.counter}`)
        .onClick(() => {
          this.counter++
        })
        .opacity(this.counter % 2 === 0 ? 1 : 0.7)
    }
  }
}

4.4.5 最佳实践与注意事项

  1. 性能优化:

    • 避免在build方法中频繁创建匿名函数
    • 使用@Prop和@Link实现精确更新
  2. 代码组织:

    • 相关属性分组设置
    • 复杂样式建议使用Style扩展
  3. 调试技巧:

    Text('Debug')
      .onClick(() => {
        console.log('Current props:', this.$props)
      })
    

关键提示:ArkTS的属性系统采用链式调用设计,每个属性设置方法都会返回组件实例,支持流畅的API调用风格。

Last Updated:: 5/22/25, 5:00 PM