Задать вопрос
@dark_king_13

Vue.js Как в роуте вызвать обновление компонента, вызванного в App.vue?

В App.js у меня вызывается компонент Menu, в который отправляется набор ссылок. Есть 2 набора, один для зарегистрированного пользователя, другой для незарегистрированного.
В App.vue есть следующий код:
5e03b0f2d6fe7236675537.png
5e03b0f7f4086714052690.png
Но его проблема в том, что меню обновляется только при полной перезагрузке страницы, а мне нужно чтобы, когда, после авторизации, пользователя перебрасывает на главную страницу, набор ссылок обновлялся.
Вызов location.reload() в компонентах LogIn и LogOut помогает решить эту проблему, но добавляет новую, собственно, саму перезагрузку. Какие ещё есть варианты решения проблемы?
  • Вопрос задан
  • 254 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
Aetae
@Aetae Куратор тега Vue.js
Тлен
Сам по себе localStorage не реактивен, так что ваш computed не имеет особого смысла.

По-хорошему token просто надо хранить в рективном store(не обязательно vuex, можно просто observable), и во всех местах получать и класть его через этот store. Тогда всё будет работать из коробки.
Если же в localStorage token прилетает откуда-то сам, то придётся вам повесить событие onstorage и отлавливать изменения вручную в нужных местах.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@VegasChickiChicki
Почему эти данные в mounted? Просто занесите их в data, в чем проблема?
Ответ написан
Ваш ответ на вопрос

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

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