компонентов В и С.
В и С обменивались сообщениями через родителя в виде this.$parent.$emit(...) / this.$parent.$on(...).
Обновляюсь на Vue 3. Решил далеко не ходить и использовать вариант из https://v3.ru.vuejs.org/ru/guide/migration/events-api.html#шина-событии, подключив его к родителю А. Но встрял на том, что не могу получить этого родителя из В или С
Куда копать, направьте. Или следовать рекомендациям про provide/inject? Но этого я до конца не понял. Сам я бэкендер, поможите, люди добрыя
Что это за два компонента, и почему им, будучи соседними, надо общаться? Что происходит в общении? Связаны ли они с родителем как-то, кроме как с посредником общения?
Тогда кажется, что они должны управляться общими данными снаружи через просто пропсы
Возможно, но переписывать в данный момент возможности нет. Вопрос про возможность эмулировать старое поведение emit/on
Из потомка засовывать в родителя? Такая себе идея, прямо скажем. Почему нельзя в родителе создать шину?
>Такая себе идея, прямо скажем. такая себе идея в принципе трогать $parent, поэтому в данном случае ничего принципиально не поменяется с точки зрения качества кода
Если родитель фиксироваеный, он может просто через пропс передавать шину (или инжект)
Видимо, я просто запутался во всём этом. Откатил все правки, в родителе написал import E from 'tiny-emitter/index'; created() { this.bus = new E(); }, в детях написал this.$parent.bus.emit(...) Завелось. Как обычно, всё было просто... Спасибо!
Обсуждают сегодня