你好,我是relativly新Vue.js和SOFAR我喜歡與它的工作,但今天我掙扎,我還沒有找到我的問題一個乾淨的解決方案。
我在v-for循環中創建了9個Child.vue組件,每個Child.vue都包含一個ContextMenu.vue組件。如果我點擊Child.vue中的按鈕,我會觸發此上下文菜單。一切都很順利。
現在我只想在每個時間點顯示一個上下文菜單。所以我在想我會向Parent.vue發出一個類似「menuIsShown」的事件,並在父級中向每個Child.vue分派一個事件來隱藏菜單。在一個菜單中,我可以簡單地將其設置爲可見。
this.$emit('contextMenuShown', true);
this.showMenu();
但是當我瞭解到有在Vue2沒有$派遣了。所以我試圖在Parent.vue中使用this. $ children來觸發每個Child.vue中的方法。不知何故,這不起作用,我想這個問題必須有更好的解決方案,因爲你應該使用道具來傳達給孩子們。但是這對於我來說在for循環中似乎很難。要使用全局事件總線也是可能的,但這真的有必要嗎?
任何最佳實踐建議如何解決這個問題?
在此先感謝 ROBI
想要觸發其他子組件的點擊事件時隱藏其他子組件? –
僅限每個孩子的上下文菜單,以確保每個時間點只顯示一個上下文菜單 –