一 概述
二 自定义组件极其特点
2.1 系统组件和自定义组件
- 系统组件:由框架直接提供的组件,比如(Text、Button)
- 自定义组件:开发者定义的组件,比如TabBar标题栏
2.2 自定义组件特点
- 可组合:允许开发者组合使用系统组件、及其属性和方法。
- 可重用:自定义组件可以被其他组件重用,并作为不同的实例在不同的父组件或容器中使用
- 数据驱动UI更新:通过状态变量的改变,来驱动UI的刷新
三 自定义组件
3.1 自定义组件步骤
- public class+自定义组件名(HelloComponent)
- 使用@Component声明自定义组件(@Entry是入口修饰符,非必须)
- func build()方法中构建自定义组件页面
3.2 示例(一个按钮,点击修改按钮内容)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| @Entry @Component public class HelloComponent {
@State var message: String = 'Hello, World!';
func build(){ Row(){ Button(this.message).onClick{ => this.message = "Hello, Cangjie!" } } .padding(left: 35, right: 35, top: 35) } }
|
四 使用自定义组件
4.1 导入自定义组件
图示
代码(ohos_app_cangjie_entry
对应src目录)
1
| import ohos_app_cangjie_entry.pages.HelloComponent
|
4.2 使用自定义组件
1 2 3 4 5 6 7 8 9
| @Entry @Component class MyView { func build() { Column(20) { HelloComponent() } } }
|
4.3 效果图
五 参考
- HarmonyOS Beta5 仓颉—自定义组件
- HarmonyOS Beta5 ArkTS-自定义组件