Как запретить уничтожать компонент при переходе между роутами?

Здравствуйте.
Простой пример описывающий проблему:
На одном компоненте роутера запускается таймер, но при переходе на другой роутер таймер уничтожается и при повторном переходе на эту страницу запускается по новой.
Как избежать этой ситуации? Допустим я хочу отображать этот таймер(или другие реалтайм данные) на главной странице, или допустим есть запрос к api сервера и обработка этого ответа, получается что при каждом переходе на страницу, компонент будет создаваться по новой, пересчитываться данные и т.д. каждый раз? Возможно ли создать компонент на странице и не уничтожать его при переходе на другую страницу?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 2
Aetae
@Aetae
Тлен
Чтоб сохранять компоненты в памяти у Vue есть <keep-alive>.
Но, думаю, это не то что вам надо, а надо вам независимое от компонентов хранилище.
Вы можете использовать для этого Vuex или обойтись простым реактивным объектом: в Vue 2 такой можно получить через Vue.observable, в Vue 3 просто через Vue.ractive.
Ответ написан
@Tim308 Автор вопроса
В общем действительно keep-alive помог, а именно:
<router-view v-slot="{ Component }">
            <keep-alive>
                <component :is="Component"></component>
            </keep-alive>
        </router-view>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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