05-鸿蒙学习之State、Prop、Link用法

05-鸿蒙学习之State、Prop、Link用法

@Entry
@Component
struct StateMangement {
  // @State 必须初始化
  @State name: string = 'Hello World'

  build() {
    Row() {
      Column() {
        Text(this.name).StateMangement_textStyle()
        Button('点击').StateMangement_btnStyle(() => {
          this.name = this.name === '1' ? '1' : '2'
        })
        Divider()
        mychild({ content: this.name })
        Divider()
        // StateManagement_link({content_link:this.name})
        // 如果市state ----》link 参数传递时,使用$ 变量名进行传递
        StateManagement_link({content_link:$name})
      }
      .width('100%')
    }
    .height('100%')
  }
}
// 存放一个 @prop 装饰的状态数据,方便父子组件之间进行数据传递和同步 State ----》prop
@Component
struct mychild {
  @Prop content: string

  build() {
    Column() {
      Text('prop:' + this.content).StateMangement_textStyle()
      Button('修改prop数据').StateMangement_btnStyle(() => {
        this.content = '子组件不能修改父组件数据'
      })
    }
  }
}

// 存放 link 数据
@Component
struct StateManagement_link {
  @Link content_link: string

  build() {
    Column(){
      Text('link:' + this.content_link)
      Button("修改Link数据").StateMangement_btnStyle(()=>{
        this.content_link = "子组件同步修改父组件数据"
      })
    }

  }
}
// 同样的样式需要复用

@Extend(Text) function StateMangement_textStyle() {
  .fontSize(50)
  .fontWeight(FontWeight.Bold)
  .fontColor(Color.Green)
}

// 按钮样式
@Extend(Button) function StateMangement_btnStyle(click: Function) {
  .fontSize(30)
  .onClick(() => {
    click()
  })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值