inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"

axios 컴포저블 함수 구현 1

fetchPosts 함수 동작 순서 관련 질문입니다.

444

eg2data

작성한 질문수 18

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.스크린샷 2023-03-10 16.36.15.png스크린샷 2023-03-10 16.32.49.png

안녕하세요.

딜레이 되는 동안 AppLoading 컴포넌트가 보여지고,

Error가 없다면 게시글 목록이 보이는 상태입니다.

 

에러가 발생하지 않았다면,

로딩화면 보임-> 로딩화면 사라짐 -> 게시글 목록 데이터 표출

으로 화면이 보여지는데요

 

제 의문은, 두 번째 이미지에 보이는 코드에서

로딩화면 사라짐 -> 게시글 목록 데이터 표출

은 정의된 적이 없는 것 같은데 이렇게 작동하는 것에 있습니다.

 

try문에서 loading.value = true가 되어 로딩화면이 보이게 되고,

그 상황에서 getPosts로 데이터를 뿌리게 됩니다.

그리고나서 정상적으로 가져오고 나면

finally문에서 loading.value = false가 되면서 로딩화면이 사라지게 되는거 아닌가요?

 

즉, fetchPosts 함수는

로딩화면 보임 -> 로딩화면과 동시에 게시글 목록 데이터 표출 -> 로딩화면 사라짐

을 명령하고 있는 상황 아닌가요?

vue.js

답변 1

0

짐코딩

안녕하세요 :)
제가 지금 질문을 정확히 이해할 수 없어서요 🥲

말씀 하신 것 중

제 의문은, 두 번째 이미지에 보이는 코드에서
로딩화면 사라짐 -> 게시글 목록 데이터 표출
은 정의된 적이 없는 것
같은데 이렇게 작동하는 것에 있습니다.

이 부분은 두 번째 이미지 코드에 정의가 되어 있어서 동작이 되는데요.

  1. 로딩 화면 표시

  2. 값 저장 (화면에 목록 표시)

  3. 로딩 화면 제거

이러한 로직으로 잘 동작하고 있는데요.

const fetchPosts = async () => {
	try {
		loading.value = true; // 로딩 화면 표시
		const { data, headers } = await getPosts(params.value);
		posts.value = data; // 값 저장 (화면에 목록 표시)
		totalCount.value = headers['x-total-count'];
	} catch (err) {
		error.value = err;
	} finally {
		loading.value = false; // 로딩 화면 제거
	}
};

어떤 질문이신지 조금 더 자세히 설명해주시겠어요?

1

eg2data

음.. 답변에 사용하신 이미지에 담긴 코드에서,

try문에서 값 저장 (화면에 목록 표시)를 한 후에, finally문에서 로딩 화면을 제거한다고 생각하고 있습니다.

즉,

  1. 로딩 화면 표시

  2. 로딩 화면 표시 & 값 저장 (화면에 목록 표시)

  3. 로딩 화면 제거

     

     

로 동작해야하는 거 아닌가요?

0

짐코딩

처음 질문 하신 부분에서

로딩화면 보임 -> 로딩화면과 동시에 게시글 목록 데이터 표출 -> 로딩화면 사라짐

로딩화면게시글 목록을 동시에 표시할 순 없어요. 왜냐하면

<template> 에서 v-if 조건문으로 분기하고 있기 때문입니다.

따라서 로직이 로딩화면 표시 -> 목록 값 저장 -> 로딩화면 제거 라는 로직으로 하셨어도.

<template> 로직 내 v-if 분기로 인하여 로딩화면 표시 -> 로딩화면 사라짐 -> 목록 보여짐

으로 보여지는게 맞습니다. 만약 UX를 다르게 가져가고 싶다면 분기문(v-if, else-if)을 수정하면 되겠죠?

질문드립니다.

0

32

0

unplugin-vue-components 질문드립니다.

0

41

2

강의듣다가 헷갈려서 질문드립니다.

0

35

1

와 짐코딩님 강의 들으면서 느끼는게 많네요.

0

33

1

질문드립니다.

0

33

2

라우터 인스톨 후 실행안됨

1

52

2

코드 자동 포매팅 질문

0

73

2

필터 watchEffect 질문입니다.

0

52

1

json-server 오류가 다른게 뜨네요

0

115

1

미리보기가 안됩니당...

0

70

2

unplugin-vue-components

0

86

2

TypeError 질문

0

53

1

v-model="show" :show="show" 같이 사용?

1

58

1

hash 모드 배포의 필요성?

0

64

2

.eslintrc.cjs 가 없습니다

0

96

2

title,content값이 비어서 저장되는데 제가 혹시 어떤 부분을 잘못 작성했는지 ㅜㅜ 알고싶습니다.

0

98

3

_title_like: "", 문의드려요 해당 값을 설정하면 list가 아에 안나옵니다.

0

65

1

@click.prevent="params._page = pageNum"> 에 .value를 안쓰는 이유가 궁금합니다.

0

73

2

중첩된 컴포넌트 문제

0

76

2

교안에 있는 부분이 아닌가요?

0

109

2

useAxios Proxy(Object) RefImpl

0

114

1

axios timeout

0

338

3

강의와 상관은 없지만, 궁금한 점이 있어 질문드립니다.

0

124

2

컴포넌트 분리 부분에서 오류가 나요ㅠㅠ

0

170

2