【Vue.js】로딩 화면의 실장 방법(샘플 코드 첨부)

소개



Vue.js에서 로딩 화면을 구현하는 방법을 샘플 코드로 요약했습니다.

이번 로딩 모듈은 vue-loading-template을 사용하고 있습니다.


데모는 여기에서 확인할 수 있습니다.

환경


OS: macOS Catalina 10.15.1
Vue: 2.6.10
vue-cli: 4.1.1
vue-router: 2.6.10
vuex: 3.1.2
vuetify: 2.1.0

vue-loading-template 설치


$ yarn add vue-loading-template

1. src/App.vue



App.vue
<template>
  <v-app>
    <Loading v-show="loading"></Loading>
    <Home v-show="!loading"></Home>
  </v-app>
</template>

<script>

import Loading from '@/components/Loading'
import Home from './views/Home'

export default {
  name: 'App',
  data() {
    return {
      loading: true,
    }
  },
  mounted() {
    setTimeout(() => {
      this.loading = false;
    }, 1000);
  },
  components: {
    Loading,
    Home,
  },
};
</script>

전제


  • Vuetify를 사용하기 때문에 <v-app>로 묶여 있습니다
  • Loading 로딩 화면 구성 요소
  • Home는 응용 프로그램 본문을 결합한 구성 요소

  • 로딩 화면 전환 방법


  • v-show를 사용하여 변수 loadingtrue 또는 false인지 여부에 따라 로딩 화면을 표시/숨기기
  • 전환은 mounted 사용
  • mounted는 DOM의 작성이 완료된 단계에서 발동하므로,
    DOM 생성이 완료되면 loadingfalse가되고 로딩 화면이 숨겨집니다
  • .

    2. src/components/Loading.vue



    여기가 로딩 화면의 구성 요소입니다.

    Loading.vue
    <template>
      <div v-show="loading">
        <div class="fullview">
          <div class="loading-spacer"></div>
          <vue-loading 
            type="spiningDubbles"
            color="#aaa"
            :size="{ width: '100px', height: '100px' }"
            >
          </vue-loading>
        </div>
      </div>
    </template>
    
    <script>
    import { VueLoading } from 'vue-loading-template'
    
    export default {
      name: 'loading',
      components: {
        VueLoading,
      },
    
    }
    </script>
    
    <style>
    .fullview {
      width: 100%;
      height: 100%;
      background: #fefefe;
      position: fixed;
      top: 0;
      left: 0;
    }
    .loading-spacer {
      height: 30%;
    }
    </style>
    
  • VueLoading 가져오기
  • <vue-loading>에서 다양한 옵션을 지정하고 로딩 애니메이션의 유형, 색상 및 크기 지정
  • <div class="loading-spacer"> 로딩 애니메이션을 화면 상단에서 임의의 위치로 가져 오는 데 사용

  • 결론



    끝까지 읽어 주셔서 감사합니다

    로딩 애니메이션은 spiningDubbles를 좋아합니다

    참고로 한 사이트 (항상 감사합니다)


  • Vue.js에서 간단한 로딩을 표시하는 "vue-loading"의 사용법 | Developers.IO
  • GitHub - jkchao/vue-loading: 😄 vue-loading 😊
  • 좋은 웹페이지 즐겨찾기