@wufapexef

Можно ли получить доступ к this.$refs из другого компонента?

Плагин Isotope использует это

this.$refs.cpt.filter(key)

Но мне надо перенести навигацию в отдельный компонент. Как из него выполнить этот код, если плагин в другом компоненте?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Можно. В любом компоненте доступны ссылки на корень, родителя и экземпляры вложенных компонентов. Так что зная, где находится экземпляр компонента с вашим isotope'ом относительно текущего экземпляра или корня, достучаться до него труда не составит.

Но не нужно. Лучше воспользуемся vuex.

В компоненте, из которого надо "получить доступ", вызываем мутацию, изменяющую значение выбранного фильтра, а в компоненте с isotope'ом устанавливаем наблюдение за этим значением, где и дёргаем $refs.cpt.filter. Типа так.

Или, к чёрту $refs - можно оформить в хранилище геттер, представляющий отфильтрованные данные, и создавать элементы для isotope'а на их основе. Как это может выглядеть.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Как вариант сделайте метод в компоненте, в котором идет обращение к this.$refs.cpt.filter(key) и из него сделайте обращение:
methods: {
  someMethod() {
   // ...
   this.$refs.cpt.filter(key)
  }
}


Далее вызывайте этот метод из другого компонента:

this.$refs.someComponent.someMethod()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы