子到父数据Vue JS

Posted

技术标签:

【中文标题】子到父数据Vue JS【英文标题】:Child to parent data Vue JS 【发布时间】:2018-04-02 01:45:52 【问题描述】:

大家好,我不太清楚该怎么做,我对 Vue 很陌生,如何将我的数据从 NewDeal 组件发送到 DealsTable 组件?如您所见,NewDeal 有两个父组件。我已经阅读了有关 $emit 和 $on 的信息,但只是想确认我是否真的需要像 newDeal -> QuickActions -> SideBar 那样做?如果我的想法是正确的,我不确定如何从那里开始。我希望你能给我一些启示。

我尝试从NewDeal 组件发出一个事件并从DealsTable 组件监听它,但没有成功,我不确定这是否可能,或者它应该真的是孩子是直接的父母的后代?

谢谢!

【问题讨论】:

【参考方案1】:

使用全局变量总线修复它并用总线替换它。

app.js 中的声明:

window.bus = new Vue()

发射器: bus.$emit()

听众: bus.$on()

【讨论】:

【参考方案2】:

我尝试从 NewDeal 组件发出一个事件并从 DealsTable 组件监听它,但没有成功

看起来你有一个解决方案,但我想我会评论这一部分以防万一。 DealsTable 没有看到来自 NewDeal 的事件的原因是子组件发出的 vue 事件只会传播到直接的父组件,而不会传播到更高的父组件。

如果您希望 vue 事件在链的更高位置被看到,那么孩子的父母需要在侦听事件并接收到事件后发出事件。通过这种方式,每个父母都可以将事件向上推,但在许多情况下这太复杂了,所以你的 window.bus 方法是要走的路。希望这有助于使您所看到的更有意义。

【讨论】:

感谢您的知识!这实际上是我的第一个想法,我会像发射链和监听器那样做,这将涉及大量工作,而且不是很理想。好吧,javascript 仍然是 javascript :D 谢谢!我也读过 Vuex,但现在可能还没有。

以上是关于子到父数据Vue JS的主要内容,如果未能解决你的问题,请参考以下文章

vue 组件间传值: 父到子,子到父,兄弟间

子到父事件发出

使用服务的角度子到父通信

HTML5 - 跨浏览器 iframe postMessage - 子到父?

数据未从 Vue.js 中的子组件发送到父组件

将 vue.js 组件子中的对象或值发送到父通信