你好,我是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
想要触发其他子组件的点击事件时隐藏其他子组件? –
仅限每个孩子的上下文菜单,以确保每个时间点只显示一个上下文菜单 –