HarmonyOS开发实战:状态管理-@Event

按照一个组件最基本的功能,既能接收外部传入的数据也要向外部传递数据。那么 @Event 修饰符就是来解决这个问题的了。

介绍

@Event 是 子组件向父组件传递数据的技术,它只能用在 @ComponentV2 修改的组件上,其中的思想是

  1. 完成修改数据的操作,还是放在父组件内部,通过定义一个函数 func 来实现
  2. 在父组件调用子组件的时候,也顺带把这个函数 func 传递给子组件
  3. 子组件在内部 使用 @Event 来修饰 该函数,并且在需要的使用直接调用即可

父组件

  1. 定义内部数据 num
  2. 定义修改内部数据num的函数 func
  3. 使用子组件时,把num和func都传递过去
@Entry

@ComponentV2

struct Index {

@Local num: number = 100

// 自己定义的函数 负责修改数据, 该函数也要传递给子组件

func = (unit: number) => {

this.num -= unit

}

build() {

Column() {

Button("父组件 修改" + this.num)

.onClick(() => {

this.num++

})

// 使用子组件,并且传递数据 和 传递函数

Son({ num: this.num, func: this.func })

.padding(10)

}

.width("100%")

}

}

子组件

  1. 使用 @Param 接收父组件传递的 num
  2. 使用@Event 接收父组件传递的函数 func
  3. 定义点击事件的处理函数 onfunc,内部直接调用父组件传递过来的函数
@ComponentV2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值