@atachrus

Как корректно передать параметр из дочернего элемента N вложенности?

Сразу прошу прощение - на стадии изучения vue.

Для наглядности сделал небольшой пример (при клике активность в логе).
Пример реализации на codesandbox

Суть задачи, что бы при клике по элементу в "дереве" каталога (в котором имеется компонент с N вложенностью), передал значение ID (по которому был клик) на самых верх своему родительскому компоненту модуля (но это не root приложения).

В примере я это реализовал путем перекидывания событий, но меня смущает что чем больше вложенность дерева, тем больше обработчиков этого клика. Или подскажите, может я вообще не так делаю.
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
provide / inject

В корневом компоненте дерева:

provide() {
  return {
    treeRoot: this,
  };
},

Во вложенном:

inject: [ 'treeRoot' ],

@click="treeRoot.$emit('item-click', item)"

В клиентском коде:

methods: {
  onItemClick(item) {
    // ...
  },
},

@item-click="onItemClick"

https://codesandbox.io/s/elated-jennings-jeb07?fil...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Kostik_1993
Web Developer
Гуглите Vuex, Event Bus
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы