inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Next.js 시작하기(feat. 지도 서비스 개발)

매장 데이터 불러오기(feat. SWR)

안녕하세요 용주님 질문이 있습니다~

해결된 질문

428

bj2525

작성한 질문수 28

1

server state 관리를 swr 말고 react-query를 사용하려고 합니다.

아래와 같이 해당 queryKey를 가지고 stores에 대한 data를 전역으로 관리하고 싶었는데, fetchFunction 자리에 stores props가 들어갈 수 없어서 처음에 어떻게 initialdata를 가져올 수 있을지 잘 모르겠습니다.. react-query는 수업때 배우진 않지만 혹시 아시는 부분이 있다면 알려주시면 감사하겠습니다 !!

const { data } = useQuery([queryKey], fetchFun)

seo next.js vercel csr ssg ssr

답변 1

0

박용주

안녕하세요! 질문 감사합니다.

react-query는 서버 상태에 대한 비동기 처리를 다루기 때문에 아래의 코드가 가장 기본적인 코드입니다.

const { data } = useQuery(['stores'], () => {
  return fetch(`/api/stores`).then((response) => response.json());
});

단순하게 전역 상태를 index page에서 저장하고 다른 컴포넌트에서 사용하는 로직이라면 아래의 코드도 가능해보입니다.

// index page
const queryClient = useQueryClient();
queryClient.setQueryDefaults(['stores'], { queryFn: () => stores });
// components
const { data } = useQuery({ queryKey: ['stores'] });

하지만 mutation 등의 확장성을 고려했을 때 좋은 설계는 아닙니다.
react-query는 swr과 사용법이 다르기 때문에 기존 로직(currentStore 등)을 react-query로 모두 바꾸려면 새로운 설계를 생각하셔서 전반적으로 변경하는 것이 좋아보입니다!

감사합니다 :)

API 라우터를 사용해야 하는 경우에 대해

1

150

1

키보드 어떤 거 사용하시나요

1

352

1

next.js 멀티플 런타임 관련해서 질문 올립니다..

1

358

2

아주 기초적인 질문입니다.

1

322

1

서버사이드 렌더링을 할 때, 서버는 어디에 있는 건가요?

1

1170

2

수업을 듣다가 SSR에 관하여..

1

551

2

interface 와 type

1

376

1

엘리맨트들의 자식관계가 어떻게 이렇게 되나 궁금합니다.

1

384

1

onLoad함수 (script태그의 onLoad X)

1

426

1

dynamic에 대한 질문

1

447

1

SSR vs SSG

1

476

2

NoSSR 관련한 질문입니다:)

1

376

1

a tag 질문 !

1

327

2

8분 20초 배포 관련

1

324

2

안녕하세요! 구글 서치 콘솔에 등록하는 도중 다음 오류가 뜹니다

0

2678

2

emotion styles 파일이 빌드시 경고로 뜹니다.

1

438

1

naver map 이 출력되지 않습니다.

1

481

1

페이지에 site맵 존재시 next Link는 csr 처럼 싹가져오게 되나요?

1

264

2

Failed to load resource: the server responded with a status of 404 ()

1

1034

2

VSCode 익스텐션 궁금합니다.

1

356

1

상태관리 질문 있습니다!

1

449

1

swr에 대한 질문입니다. (용어 관련)

1

372

1

swr 질문입니다!

1

337

1

안녕하세요. span 태그의 부모에 display: flex 를 적용하는데 왜 적용되는지 아무리 생각해도 이해가 되지 않아 질문드립니다.

1

679

2