自定义组件概念
- 概念:系统框架提供的称为“系统组件”,由开发者自定义的称为“自定义组件”;
- 用途:抽离组件拆分页面,自定义特定效果的UI组件;
自定义组件代码框架
@Component
struct TestCustomComponent {
build() {
}
}
同样样式、事件
- 自定义组件可以通过点语法设置通用样式、通用事件
- 针对整个自定义组件生效
使用
- 导出export:默认导出和按需导出
- 导入import
成员变量
- 成员变量:变量和箭头函数
- 成员可被传的参数覆盖
- 普通函数无法通过传值覆盖
talk is cheap, show me the code
自定义组件代码
@Component
export struct TestCustomComponent {
@State title: string = '默认标题'
@State more: string = '默认更多'
clickMore = () => {
console.log('test log', '点击了可被覆盖的默认')
}
clickMore2() {
}
build() {
Row() {
Text(this.title)
Text(this.more)
}
.width('100%')
.justifyContent(FlexAlign.SpaceBetween)
.onClick(() => {
this.clickMore()
})
}
}
如何使用
import { TestCustomComponent } from '../pages/RegisterPage'
@Preview
@Entry
@Component
struct Index {
clickMore = () => {
console.log('test log', '我是传过来的方法')
}
build() {
Column({ space: 20 }) {
TestCustomComponent()
TestCustomComponent({
title: '传过来的订单',
more: '传过来的查看更多 >',
clickMore: this.clickMore
})
}
}
}
图片