[英]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.