繁体   English   中英

如何在不调用事件的情况下将数据从子级发送到父级(vue 2)

[英]how to emit the data from child to parent without calling an event(vue 2)

我需要将数据从子组件发送到其父组件(通过发射),一旦子组件被加载而不调用任何事件,如 click 或 keyUp,......
换句话说,我希望一旦挂载子组件,它会自动将其一些数据发送给父组件,而不必调用事件来发出数据。
vue.js 有什么办法吗?
我会提前谢谢你

我建议您阅读有关props如何工作的信息: https://v2.vuejs.org/v2/guide/components-props.html

您可以尝试做的一件事是将 Object 作为道具传递,并在子级内部改变 object,而不是监控父级中的 object 变化。 但老实说,这与 Vue 的工作原理相冲突,并且是基于实践的。 所以不要这样做。

但真正的问题是什么? 发出自定义事件是迄今为止最简单的事情,并且完全符合 Vue。

在父母中:

<my-comp @initiated="handleInitiated"/>

在孩子中,在您完成初始工作后:

this.$emit('initiated', initiationData)

如果您在使用默认事件名称时担心事件传播,那么这个带有自定义事件名称的解决方案可以解决这个问题。 当然,一旦你抓住它,你也可以随时停止进一步的传播。

而不是使用$emit我建议使用一些store (状态管理)。

它可以是全局商店或子商店。 可以更轻松地查看任何父/子组件中的更改。

想象一下,您想在来自父组件的非常深的子组件中收听。 你会开始传递事件吗?

流程是:

1-从深层嵌套的孩子更新商店

2-在您的父组件中使用存储获取器来观察/计算更改

结帐vuex https://vuex.vuejs.org/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM