组件的状态管理,首先什么是组件?
组件:(1)系统组件,ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用, 比如Column、Text、Divider、Button等。
(2)自定义组件,可复用的UI单元,可组合其他组件,如被@Component装饰的 struct。
组件状态与组件之间的关系?
组件展示的UI内容由组件的状态变量来控制。状态变量在不同场景由不同的装饰器来修饰@State、@Prop、@Link、@Provider和@Consume、@Observed和@ObjectLink。
因为状态变量的存在所以页面由静态页面可以变成动态的、有交互的页面。
一、对于简单数据源的状态管理
@State组件内部双向同步数据源
@Component
export struct MyComponent {
@State count: number = 0
build() {
Column() {
Button(`当前count:${this.count}`).onClick(() => {
this.count++
})
}.justifyContent(FlexAlign.Center)
.width("100%")
.height("100%")
}
}
@State与@Prop父组件与子组件的单向同步
@Component
@Entry
export struct MyComponent {
@State count: number = 0
build() {
Column() {
Button(`当前count:${this.count}&