ArkTS常用组件知识点整理
一、页面基础装饰器组件(页面必备)
@Component 装饰器作用:将结构体标识为ArkUI自定义页面或组件,仅有添加该装饰器,结构体才可通过build()方法搭建UI界面。 示例:@Component struct LoginPage{}
@Entry 装饰器作用:需与@Component搭配使用,用于标识当前页面为独立访问入口,支持路由跳转、预览器直接渲染,所有可跳转页面均必须配置该装饰器。 示例:@Entry @Component struct Register{}
@State 状态装饰器作用:实现数据与UI双向绑定,被修饰的变量发生改动时,页面会同步刷新,输入框、开关等交互组件,均依靠该装饰器存储交互数据。 示例:@State username:string=""
二、基础布局容器组件(7大类)
Column 垂直布局容器:将内部所有组件自上而下垂直排列,支持设置组件间距、水平与垂直对齐方式,适用于表单、注册登录类页面布局。 示例:页面整体外层通过Column包裹用户名、密码输入框及功能按钮。
Row 水平布局容器:内部组件从左至右单行横向排列,可配置水平间距、垂直对齐方式,适合一行内文字搭配输入框的组合布局。 示例:将用户名文字与TextInput输入框放置在同一Row容器内,实现横向展示效果。
Stack 层叠容器:组件按照代码编写顺序分层叠加,后定义的组件会覆盖在前层组件之上,可实现图片浮文字、页面遮罩等效果。 示例:底层放置展示图片,上层叠加半透明说明文字。
Flex 弹性布局容器:具备自动换行特性,当容器宽度不足时,内部组件可自动换行适配,适用于数量不固定的标签、小图标等场景。
Grid 网格容器:可划分固定行列的等分宫格,子组件必须嵌套GridItem使用,多用于规整的九宫格菜单、相册展示等布局。
List 滚动列表容器:自带垂直滚动功能,子组件需嵌套ListItem,适配大量重复数据展示场景,性能优于普通Column布局。 示例:新闻列表、商品列表的渲染展示。
RelativeContainer 相对布局容器:通过组件ID绑定定位规则,组件可参照父容器或其他组件精准摆放,布局自由度最高。
三、文本与媒体展示组件
Text 文本组件:核心用于文字内容展示,支持自定义字号、字体颜色、加粗、居中、外边距等样式,绑定onClick事件可实现页面点击跳转功能。 示例:Text("已有账号,立即登录")
Image 图片组件:用于加载项目media资源文件夹下的本地图片,通过$r('app.media.图片名')方式引入,可设置宽高、圆角属性,支持制作圆形头像等样式。 示例:页面顶部圆形头像展示图片。
四、表单输入交互组件
TextInput 文本输入框:用于接收用户输入内容,通过text属性绑定@State变量实现数据双向同步;placeholder属性可设置输入提示文字;type属性可开启密码隐藏模式;onChange事件可实时监听输入内容变化。 示例:登录页用户名输入框、密码输入框。
Toggle 开关组件:提供切换按钮样式,绑定布尔类型@State变量,可实现记住密码、功能开关设置等业务场景。 示例:登录页面“记住密码”切换开关。
五、按钮与弹窗组件
Button 按钮组件:支持自定义宽高、圆角、内边距等样式,绑定onClick点击事件后,可执行表单校验、页面跳转、输入内容清空等业务逻辑。 示例:注册按钮、清空按钮、页面返回按钮。
AlertDialog 弹窗提示组件:调用静态show方法即可唤起提示弹窗,可配置标题title、提示信息message,用于反馈注册、登录操作的成功或失败结果。 示例:注册密码输入不一致时,弹出错误提示弹窗。
六、循环渲染组件
ForEach 循环组件:接收数组数据与回调函数,可批量生成重复UI元素,简化列表、网格多元素的重复代码编写。 示例:在Grid网格布局中,批量生成多个功能格子。
七、组件通用样式与交互方法
通用样式:通过width、height设置组件尺寸,padding为内边距、margin为外边距,borderRadius实现圆角效果,backgroundColor设置组件背景色;
通用交互:.onClick()方法用于监听组件点击事件,所有可交互组件均支持该方法;
路由组件:router路由模块不属于UI组件,核心负责页面跳转,可通过pushUrl传入页面路径url,搭配params参数实现跨页面传参。
整体总结
ArkTS组件主要分为页面装饰器、布局容器、展示组件、表单交互组件、弹窗组件、循环渲染组件六大类别。开发过程中,通过各类布局容器嵌套基础组件搭建页面结构,依托@State实现数据响应式更新,借助onClick完成页面交互,通过AlertDialog实现操作结果反馈,依靠router完成页面跳转,多类组件相互配合,即可完整实现注册、登录等核心业务页面。
