Vue.js Родитель Ребенок связь через реквизита и События
Здравствуйте, я relativly новичок Vue.js и ГНФАР мне нравится работать с ним, но сегодня я изо всех сил, и я не нашел чистое решение для моей проблемы ,
У меня есть 9 компонентов Child.vue, которые я создаю в цикле v-for, каждый Child.vue включает компонент ContextMenu.vue. Если я нажму кнопку в Child.vue, я вызову это контекстное меню. Все работает хорошо.
Теперь я хочу, чтобы в каждый момент времени отображалось только одно контекстное меню. Поэтому я думал, что я выбрал событие для Parent.vue, что-то вроде «menuIsShown», и отправьте родительскому событию каждому Child.vue, чтобы скрыть это меню. В одном меню я мог просто установить его на видимое.
this.$emit('contextMenuShown', true);
this.showMenu();
Но, поскольку я узнал, что в Vue2 больше нет отправки $. Поэтому я попытался использовать этот. $ Children в Parent.vue, чтобы вызвать метод в каждом Child.vue. Как-то это не сработало, и я думаю, должно быть лучшее решение этой проблемы, так как вы должны использовать реквизиты для общения с детьми. Но мне это кажется очень трудным в цикле for. Также возможно использование глобальной шины событий, но действительно ли это необходимо?
Рекомендации по наилучшей практике, как решить эту проблему?
Спасибо заранее Роби
Вы хотите, чтобы другие дочерние компоненты скрывались при срабатывании события кликов другого дочернего компонента? –
только контекстное меню в каждом дочернем объекте, чтобы в каждый момент времени отображалось только одно контекстное меню –