写点什么

子组件的点击事件,如何正确让父组件进行响应?

  • 2026-03-09
    北京
  • 本文字数:479 字

    阅读完需:约 2 分钟

本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。

问题描述:

在 web 的 vue.js 中,可以通过 emit 将子组件的事件通知给父组件,父组件 @监听 emit 的 key 值就可以处理子组件的事件响应了。ArkTS 中有类似方法吗?除了官网提供的透传方式(如下图)以外,还有别的方式可以在父组件中,处理子组件内点击事件吗?

解决方案:

以下几种方案可供参考:

方案一:楼主提到的官网中的透传方案,将父组件的事件传到子组件,即可在子组件调用,在父组件响应处理。参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkui-99-V5

方案二:使用事件订阅 Emitter 进行通信,不仅可以实现父子组件之间通信,还可以实现线程间通信。参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/itc-with-emitter-V5

方案三:可以在子组件中用一个 @Link 修饰的变量标志该事件发生,父组件中用 @State 修饰 @Watch 监听,在监听事件中响应。

参考 demo、详细解决方案以及相关的讨论,请点击原帖查看:

子组件的事件,如何正确让父组件进行响应?-华为开发者问答 | 华为开发者联盟 (huawei.com)