@QWERTY01

Как получить элемент DOM одного компонента из другого?

Есть компонент, и если его DOM элементы мы можем получить в этом же компоненте при помощи refs.

1) То как в этом компоненте получить ref DOM-элементов, которые находятся в другом компоненте?
2) А как получить элемент body в компоненте?
Можно ли использовать document.querySelector в таких случаях или есть другое более правильное решение?
  • Вопрос задан
  • 663 просмотра
Решения вопроса 1
@choupa
Архитектор (обычный, который строит)
Надо придерживаться архитектуры Vue: в компонент — данные, из компонента — события. Я вижу это так, компонент-менюшка получает от родителя массивом список ID всех элементов страницы, по которым нужна навигация. При выборе (в меню) какого-то элемента, компонент-менюшка отправляет "наверх" событие с ID выбранного элемента.

На это событие может подписаться родитель менюшки и осуществлять по нему нужный скрол. Либо на него могут подписаться сами элементы, и в случае если событие касается их, то делать, что им там надо в такой ситуации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
1. Если работаете с vuex, то в хуке компонента в mounted можно записать в переменную state во vuex нужный вам элемент.
2. Если компоненты работают одновременно, то можете задать ID элементу и обращаться к нему в другом компоненте.
Но нужно ли вам все это?
Ответ написан
Ваш ответ на вопрос

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

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