ArkTs---状态值

// 定义class类
class Person {
  private name: string;

  constructor(name: string) {
    this.name = name
  }

  public getInfo(): string {
    return `姓名:${this.name}`
  }
}
//------------ 自定义子组件------------
@Component
struct myChild {
  //---------------   定义状态值----------------
  // @Prop装饰器-父子单向同步,可初始化,若没有初始化父组件需传值
  @Prop age: number
  @State name: string = 'jock'
  //  @Link-父子双向同步,传值需加$,this.也可以,编辑器会报红,禁止本地初始化
  @Link bodyHeight: number

  build() {
    Column() {
      Text(`我是子组件`).fontColor(Color.Red)
      Button('改变身高').onClick(() => {
        this.bodyHeight += 10
      })
      Text(`姓名:${this.name}年龄:${this.age}身高:${this.bodyHeight}`)

    }
  }
}
//-------------------- 主页面------------------------------------
@Entry //入口文件,表示主页面
@Component //自定义组件
struct homeName { //定义组件名字
  //---------------   定义状态值----------------
  // @State 需指定其类型和本地初始化,私有动态值,场景:简单类型,装饰Class对象类型的变量
  @State age: number = 14
  @State people: Person = new Person('张三')
  @State body: number = 165
  // 私有不动态常量
  private addNum: number = 1

  build() {
    Column() {
      Text(`${this.age}`)
      Divider()
      Text(`${this.people.getInfo()},身高:${this.body}`)
      Button('改变身高').onClick(() => {
        this.body += 10
      })
      Divider()
      Text(`下面是子组件`)
      myChild({ age: this.age, name: '11lili', bodyHeight: $body })
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值