2017-10-20 351 views
1

enter image description here孩子父數據Vue公司JS

嗨,大家好,我不太知道如何做到這一點,我很新的Vue公司,我怎麼可以把我的數據從NewDeal組件DealsTable組件?正如你可以看到NewDeal有兩個父組件。我讀過$ emit和$ on,但只想確認是否真的需要這樣做,如newDeal -> QuickActions -> SideBar?如果我所想的是正確的,我不知道該怎麼走。我希望你能給我一些啓示。

我試過從NewDeal組件發出一個事件,並從DealsTable組件收聽它,但沒有工作,我不確定這是可能的,還是應該真的是該孩子是一個直接的後代家長嗎?

謝謝!

回答

2

修復它使用全局變量總線,並通過總線取代它。

宣言app.js:

window.bus = new Vue({}) 

發射器: bus.$emit()

監聽器: bus.$on()

1

我試着從發光元件NewDeal一個事件,並從它監聽DealsTable組件,但沒有工作

看起來像你有一個解決方案,但我想我會評論這一部分,以防萬一它有幫助。 DealsTable沒有從NewDeal中看到事件的原因是,子組件發出的vue事件只傳播到直接的父組件,並且不會更高。

如果您希望vue事件在鏈上看起來更高,那麼孩子的父母在聽到事件並收到事件後需要發出事件。通過這種方式,每個家長都可以將事件推上鍊條,但在許多情況下,這太複雜了,所以你的window.bus方法就是要走的路。希望幫助使你所看到的更有意義。

+1

感謝您的知識!這實際上是我的第一個想法,我會像發射和聽衆的鏈條那樣做,這將涉及大量工作,而不是非常理想。那麼,JavaScript仍然是JavaScript:D謝謝!我也讀過關於Vuex,但現在可能不適用。 – Roljhon