@myskypesla

Как правильно сделать preloader на Vue.js?

Всем привет.

Есть проект, при переходе по роутам должен включаться preloader и пока не загрузится контент, прелоадер должен быть активным, потом исчезнуть.

Есть компонент Preloader.vue, пока что реализовал так, но это просто временный вариант, чтобы сверстать preloader:
<template lang="pug">
  .preloader(v-show="loading")
</template>

export default {
  data() {
    return {
      loading: true,
    };
  },
  mounted() {
    setTimeout(() => {
      this.loading = false;
    }, 2000);
  },
  watch: {
    $route() {
      this.loading = true;
      setTimeout(() => {
        this.loading = false;
      }, 2000);
    },
  },
};
</script>


Вопрос: как сделать полноценный, чтобы пока не загрузился весь контент на странице, его не убирать? Попробовал через ready() и created(), но данные методы работают только при первоначальном рендере.
  • Вопрос задан
  • 7294 просмотра
Пригласить эксперта
Ответы на вопрос 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Можно шаблоне рутового компонента его определить. И если используется vuex, то завести свойство стейта showloader, делать его false|true в зависимости от того, когда нужно показать или спрятать этот loader.
Ответ написан
Ваш ответ на вопрос

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

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