일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 플랩풋볼레벨
- 팀짜기
- 스카이피플하트
- 자바스크립트
- 퀘이사
- 플랩풋볼추천인
- Quasar
- 자동번역오류
- 한글번역오류
- 플랩풋볼초대코드
- vue watch
- 스카이피플후기
- 플랩풋볼수준
- 플랩풋볼후기
- 플랩풋볼
- 젭스크립트
- 네이버맵api
- 카카오우편번호
- 유튜브임베드
- 카카오주소
- 랜덤팀짜기
- vfor
- 플랩풋볼캐시
- 변수변화감지
- 팀짜기프로그램
- 크롬개발자도구
- 네비게이션가드
- 플랩풋볼초대
- vue
- 오브젝트제거
- Today
- Total
당신보다 고작 하루 먼저 시작한 개발자의 오지랖
[VUE] 로딩화면(로딩 스피너) 만들기 feat. Quasar 본문
사용자 경험을 위해서 화면 렌더링이 완료되기 전까지 스피너를 띄워 유저를 지루하지 않게 한다.
구현하는 것은 어렵지 않다. 말 그대로 로딩이 시작되는 시점에서 스피너를 보여주고, 끝나는 시점에 스피너를 가리면 된다.
Vue에서는 v-if를 활용하면 돼서 정말 간단하다.
<템플릿 부분>
1
2
3
4
5
6
7
8
9
|
<template>
<div class="spinner-div" v-if="isLoading">
<q-spinner-cube
color="primary"
size="5em"
/>
</div>
// ... 기타 코드
</template>
|
cs |
<스크립트 부분>
마찬가지로 API를 호출할 경우, 호출 시작 부분에 isLoading을 true로, response가 성공적으로 완료될 때 false로 전환시키면 된다.
만약 일반 자바스크립트로 개발 중이라면, 해당 스피너 요소의 display css를 none으로 하거나, 제이쿼리를 활용한다면 $('#해당요소id').hide() 하면 된다.
위의 예제 코드에는 <q-spinner-cube/> 라는 컴포넌트가 있는데, 이는 현재 본인이 쓰고 있는 퀘이사(Quasar) 프레임워크에서 제공하는 스피너 컴포넌트이다.
퀘이사를 활용하고 있다면 여기서 제공하는 스피너들을 골라서 사용하면 된다.
quasar.dev/vue-components/spinners#example--other-spinners
Spinners | Quasar Framework
The QSpinner and its derived Vue components are used to show the user a timely process is currently taking place. It gives the user the feeling the system is continuing to work for longer term activities.
quasar.dev
현재 작업해야 할 것들이 너무 많아 스피너 고도화가 계속 밀리고 있는데, 스피너를 최상위 컴포넌트(App.vue)에 선언 후 하위 컴포넌트에서 제어. 그리고 vuex를 활용한 spinner 상태 제어 등은 나중에 공부하고 적어보는 것으로..
'VUE' 카테고리의 다른 글
[VUE] 특정 페이지 이동 전 로그인 여부 검사하기(라우터 Router beforeEach) 네비게이션가드 (2) | 2022.10.05 |
---|---|
[VUE] 특정 element로 부드럽게 스크롤 이동하기 (0) | 2022.09.30 |
[Vue] 카카오 주소 우편번호 api 활용하기 (0) | 2021.06.11 |
[Vue] params 혹은 query가 포함된 라우터(Router) 주소 이동시 페이지 갱신 (0) | 2021.05.11 |
[Vue] 라우터 히스토리 모드 사용시 서버 설정(feat. firebase) (0) | 2021.05.03 |