-
Vue 프로젝트 Loader프로젝트/영화 검색 (Vue) 2021. 8. 9. 08:14
Vue 프로젝트 Loader
- 로딩 애니메이션을 하나의 컴포넌트로 만들 예정
1. /src/components/Loader.vue 생성
<template> <div :style="{ width: `${size}rem`, height: `${size}rem`, zIndex }" :class="{ absolute, fixed }" class="spinner-border text-primary"></div> </template>
<script> export default { props: { size: { type: Number, default: 2 }, absolute: { type: Boolean, default: false }, fixed: { type: Boolean, default: false }, zIndex: { type: Number, default: 0 } } } </script>
<style lang="scss" scoped> .spinner-border { margin: auto; top: 0; bottom: 0; left: 0; right: 0; &.absolute { position: absolute; } &.fixed { position: fixed; } } </style>
2. /src/components/MovieList.vue 수정
- <div v-if="loading" class="spinner-border text-primary"></div> 삭제
- Loader 컴포넌트로 대체
<template> <div class="container"> <div :class="{ 'no-result': !movies.length }" class="inner"> <Loader v-if="loading" /> ... 생략
<script> import MovieItem from '~/components/MovieItem' import Loader from '~/components/Loader' export default { components: { MovieItem, Loader }, ...
3. /src/components/Movie.vue 수정
- 스켈레톤 UI에 로딩 애니메이션 추가
<template> <div class="container"> <div class="skeletons"> ... </div> <Loader :size="3" :z-index="9" fixed /> </div> </template>
<script> import Loader from '~/components/Loader' export default { components: { Loader }, ... } </script> ...
'프로젝트 > 영화 검색 (Vue)' 카테고리의 다른 글
Vue 프로젝트 Ratings 데이터 출력 (0) 2021.08.16 Vue 프로젝트 영화 상세 페이지 정리 (0) 2021.08.09 Vue 프로젝트 스켈레톤(Skeleton) UI (0) 2021.08.08 Vue 프로젝트 단일 영화 상세 정보 가져오기 (0) 2021.08.08 Vue 프로젝트 Footer (0) 2021.08.07