inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Nuxt.js 시작하기

fetch 속성이 필요한 이유

하위 컴포넌트 호출 시 asyncData 사용 가능 여부 문의

290

hjp0712

작성한 질문수 2

1

캡틴판교님 안녕하세요. 강의 잘 들었습니다.
 
강의를 듣고 제 프로젝트에 적용 중인게 있는데요.
 
부모 컴포넌트에서
대시보드에 넣을 차트나 다른 하위 컴포넌트들을 생성 후
한번의 axios get api 호출을 통해 데이터를 각각 하위 컴포넌트의 props로 던졌는데요.
 
아래와 같은 방식으로 컴포넌트의 값을 입력하고 Props로 하위 컴포넌트에 값을 바인딩하니
 
await axios.get('/server/api').then((ret) => {
let result = ret.data.data
 
// 1번 하위 컴포넌트 값 반영
this.com1Data.product = result.product
 
// 2번 차트 컴포넌트 값 반영
let arr=[]
arr.push(result.status.count1)
arr.push(result.status.count2)
arr.push(result.status.count3)
arr.push(result.status.count4)
this.series = arr;
 
// 3번 하위 컴포넌트 값 반영
this.com3Data = result.fault.data
 
//4번 하위 컴포넌트 값 반영
...
})
 
3개정도 컴포넌트 값 바인딩까지는 문제 없이 잘 뜨는데, 4개 이상 컴포넌트에 값 바인딩 추가 후 화면을 띄우니 값이 모두 바인딩 되지 않았습니다.
 
혹시 비동기문제인가 해서 promise로 묶어서 반영도 해봤는데 여전히 작동을 안해서
 
asyncData를 사용하여 먼저 api 호출을 한 후 데이터를 미리 불러왔더니 잘 뜹니다.
 
제 생각엔 아마도 생명주기에 따른 문제점이 아닌가 합니다.
 
async asyncData() {
const response = await axios.get('/server/api')
const result = response.data.data
const com1Data = {}
let Series = []
const com3Data = {}
// 컴포넌트1 상태 값 반영
com1Data.product = result.product
 
// 컴포넌트2 상태 값 반영
Series = []
Series.push(result.status.count1)
Series.push(result.status.count2)

// 컴포넌트3 상태 값 반영
this.com3Data = result.fault.data

return { result, com1Data, Series, com3Data }
},
 
하지만 이 방법이 맞는 방식인지 모르겠습니다.
 
이 방식이 맞는걸까요? 혹시 다른 좋은 방법이 있다면 코멘트 한번 부탁드립니다.
 
 
 
 

vuejs ssr nuxtjs

답변 1

0

캡틴판교

안녕하세요 hjp0712님, 첨부해주신 코드가 잘 안보이네요 ㅜㅜ VSCode로 들고가서 코드 보니까 await랑 then을 혼용하시는 것 같은데 요 부분 정리가 필요해 보입니다. 아래 글 각각 참고해서 다시 코드 작성해 보시겠어요? :)

https://joshua1988.github.io/web-development/javascript/js-async-await/

https://joshua1988.github.io/web-development/javascript/promise-for-beginners/

판교님, 50% 학생 할인 쿠폰

0

147

2

캡틴님 커리어 질문 있습니다

0

82

1

nuxt 최신버전 설치 후 layouts 없어서 직접 폴더 생성 후 문제

1

357

1

vue나 nuxt 새로운 강의는 출시 예정이 없으실까요?

0

194

1

24년 강의를 들으면서 에러나는 부분 정리

2

347

2

공식홈페이지에 설치방법이 바뀐거같아요

1

410

3

layouts폴더와 default.vue에대해서 궁금한 점 있습니다!

1

385

2

자료가 없습니다.

1

287

2

에러 페이지 정의 방법 강의 문의

1

339

2

SSG -> SSR 배포 방식 전환

1

531

2

갑자기 화면에 에러가 나오네요..

1

452

2

마지막 강의까지 작성된 코드

1

297

2

JSON Server Operator 링크에 Operator 가 없습니다.

1

227

2

Vue2 EOL 관련해서..

1

464

2

env.baseUrl 문제

1

626

2

블로그 기능 질문입니다!

1

464

3

node 버전 문제 질문입니다.

1

227

1

폴더구조 다른것 안내 부탁드려요

1

459

1

npm run generate 배포

1

681

2

캡틴판교 선생님 너무 궁금해서 질문드립니다 ㅜ

1

331

2

nuxt.config.js 에서 baseurl 지정하는 방법

2

996

1

db.json 안에 이미지 아래 본문 처럼 바꾸면 랜덤으로 나옵니다.

2

614

3

axios 설치 후 새로고침 시 에러 발생할 때 해결 방법 입니다.

2

775

2

SSG 배포가 현재 상품,장바구니에는 맞지 않는 배포방식인거죠?

1

390

2