inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

2:34 RQProvider에 "use client"; 로 csr 선언?을 해주신 것 같은데 이런 형식의 구조라면 SSR이나 SSG 적용에는 문제가 없을까요?

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 제로초님. 리액트 쿼리를 도입해보려고 할 때 마침 제로초님 강좌가 올라와서 참고하고 있습니다! 근데 제 Nextjs 프로젝트의 데이터가 대부분 ssr이나 ssg로 데이터를 가져오게끔 하려고 하고 있거든요 강의에서 ssr로 데이터를 가져오는데 그전에 RQProvider로 리액트 쿼리를 쓸 범위를 지정해주셨잖아요? 근데 useState를 사용하고 있고, "use client";가 선언되어있는데 그 밑으로 담기는 페이지나 컴포넌트들에 ssr, ssg 적용이 잘 되는지에 대해 궁금해져서 질문을 남기게 되었습니다!! (제로초님 강의와 비슷하게 ssr로 데이터 가져오게 작업해봤을때 csr이 아니라 ssr로 잘 가져오는 거 같기는 한데 어떻게 되는거지?! 계속 궁금하네요..!)

  • react
  • next.js
  • react-query
  • msw
bcm.ianahn 댓글 1 좋아요 0 조회수 953

클라이언트 컴포넌트로 전환하기 1:07초 파일

해결됨

Next + React Query로 SNS 서비스 만들기

안녕하세요 제로초님! 현재 강좌를 따라하면서 진행중인데 깃허브에 들어가보니 @modal 밑에 파일들을 못 찾겠어서요, login.module.css은 https://github.com/ZeroCho/next-app-router-z/blob/master/ch1/src/app/(beforeLogin)/_component/login.module.css 여기있는거 같은데, page.tsx는 어떤 파일에서 보면 될까요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
호호히히히 댓글 2 좋아요 0 조회수 670

leftSectionWrapper와 rightSectionWrapper 중앙 정렬

해결됨

Next + React Query로 SNS 서비스 만들기

leftSectionWrapper와 rightSectionWrapper를 중앙 정렬시키기 위해 각각에 flex-grow: 1 을 주셨는데container에 margin: 0 auto 주는 것과 동일한건지 궁금합니다!

  • react
  • next.js
  • react-query
  • next-auth
  • msw
  • css
mihyun Lee 댓글 1 좋아요 0 조회수 533

MSW오류 및 서버 액션에 대한 질문입니다!

해결됨

Next + React Query로 SNS 서비스 만들기

안녕하세요!‘서버 컴포넌트에서 Server Actions 사용하기’ 섹션을 듣고 질문 2개가 생겼습니다. 강의를 다 듣고 실제로 진행해보니 저의 경우는 redirect('/home') 으로리다이렉션이 진행되지 않습니다 network탭을 보니 애초에 서버로 데이터 전송이 안 된 것 같습니다 (payload에는 제대로 데이터가 전송이 됐고 Headers를 보면 status가 200이 뜨긴 하네요) 그래서 MSW문제인가 싶어서 http://localhost:9090/ 에 접속해보니 에러가 발생하네요 MSW설정 자체가 문제인것 같은데 강의내용을 보고 그대로 따라했는데 어느 부분에서 문제가 발생한지 도저히 모르겠습니다.. 제 코드들을 첨부하겠습니다 // browser.ts import { setupWorker } from 'msw/browser'; import { handlers } from './handlers'; // This configures a Service Worker with the given request handlers. const worker = setupWorker(...handlers); export default worker; // handlers.ts import { http, HttpResponse } from 'msw'; export const handlers = [ http.post(`/api/login`, () => { console.log('로그인'); return HttpResponse.json( { userId: 1, nickname: '제로초', id: 'zerocho', image: '/5Udwvqim.jpg', }, { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/', }, }, ); }), http.post(`/api/logout`, () => { console.log('로그아웃'); return new HttpResponse(null, { headers: { 'Set-Cookie': 'connect.sid=;HttpOnly;Path=/;Max-Age=0', }, }); }), http.post('/api/users', async ({ request }) => { console.log('회원가입'); // 403에러 전용 // return HttpResponse.text(JSON.stringify('user_exists'), { // status: 403, // }); // 성공 전용 return HttpResponse.text(JSON.stringify('ok'), { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/;Max-Age=0', }, }); }), ]; // http.ts import { createMiddleware } from '@mswjs/http-middleware'; import express from 'express'; import cors from 'cors'; import { handlers } from './handlers'; const app = express(); const port = 9090; // 서버 포트 번호 // 현재 돌아가고 있는 로컬호스트 주소 app.use(cors({ origin: 'http://localhost:3000', optionsSuccessStatus: 200, credentials: true })); app.use(express.json()); app.use(createMiddleware(...handlers)); app.listen(port, () => console.log(`Mock server is running on port: ${port}`)); 정확히 서버액션 이라는 개념이 이해가 가질 않습니다 기존 리액트에서 클릭 이벤트 또는 서브밋 이벤트로 폼을 제출하는 방식이 아니라, 폼의 action을 사용해 서버로 폼의 데이터를 제출하는 것같은데, 이것만 보면 그냥 폼데이터 값으로 백엔드 api를 이용하는거같은데.. .정확한 서버 액션 이라는 그 의미를 잘 모르겠네요… 구글링 해보면 따로 api를 생성할 필요 없이 API를 바로 만들어서사용하는거라고 하는데 여기서는 백엔드 API를 사용하고 있고…혹시 다음 강의에 자세한 설명이 나오는것인가요?너무 헷갈리네요

  • react
  • next.js
  • react-query
  • next-auth
  • msw
kraf 댓글 1 좋아요 0 조회수 1204

로그인 문제

미해결

Next + React Query로 SNS 서비스 만들기

로그인 테스트 해보려는데 try, catch 부분 둘 다 실행되네요?. 리다이렉트가 안되는거 같아요 새로 고침하면 로그인 상태는 됩니다. 리다이렉트 안되는 이유가 무엇일까요? 'use client'; import style from '@/app/(beforeLogin)/_component/login.module.css'; import { ChangeEventHandler, FormEventHandler, useState } from 'react'; import { useRouter } from 'next/navigation'; import { signIn } from 'next-auth/react'; // 클라이언트에서는 next-auth/react에서 임포트 export default function Page() { const [id, setId] = useState(''); const [password, setPassword] = useState(''); const [message, setMessage] = useState(''); const router = useRouter(); const onSubmit: FormEventHandler<HTMLFormElement> = async (e) => { e.preventDefault(); setMessage(''); try { await signIn('credentials', { username: id, password, redirect: false, }); router.replace('/home'); } catch (error) { console.error(error); setMessage('아이디와 비밀번호가 일치하지 않습니다.'); } }; const onClickClose = () => { router.back(); }; const onChangeId: ChangeEventHandler<HTMLInputElement> = (e) => { setId(e.target.value); }; const onChangePassword: ChangeEventHandler<HTMLInputElement> = (e) => { setPassword(e.target.value); }; return ( <div className={style.modalBackground}> <div className={style.modal}> <div className={style.modalHeader}> <button className={style.closeButton} onClick={onClickClose}> <svg width={24} viewBox='0 0 24 24' aria-hidden='true' className='r-18jsvk2 r-4qtqp9 r-yyyyoo r-z80fyv r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-19wmn03' > <g> <path d='M10.59 12L4.54 5.96l1.42-1.42L12 10.59l6.04-6.05 1.42 1.42L13.41 12l6.05 6.04-1.42 1.42L12 13.41l-6.04 6.05-1.42-1.42L10.59 12z'></path> </g> </svg> </button> <div>로그인하세요.</div> </div> <form onSubmit={onSubmit}> <div className={style.modalBody}> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor='id'> 아이디 </label> <input id='id' className={style.input} value={id} onChange={onChangeId} type='text' placeholder='' /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor='password'> 비밀번호 </label> <input id='password' className={style.input} value={password} onChange={onChangePassword} type='password' placeholder='' /> </div> </div> <div className={style.message}>{message}</div> <div className={style.modalFooter}> <button className={style.actionButton} disabled={!id && !password}> 로그인하기 </button> </div> </form> </div> </div> ); } 핸들러 부분도 수정했습니다. const User = [ { id: 'elonmusk', nickname: 'Elon Musk', image: '/yRsRRjGO.jpg' }, { id: 'zerohch0', nickname: '제로초', image: '/5Udwvqim.jpg' }, { id: 'dongwook98', nickname: '신동마', password: '1234', image: '/me.jpeg' }, { id: 'leoturtle', nickname: '레오', image: faker.image.avatar() }, ]; const Posts = []; export const handlers = [ http.post('/api/login', () => { console.log('로그인'); return HttpResponse.json(User[2], { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/', }, }); }), 추가로 콘솔 에러 메시지 입니다. 이걸 보고 AUTH_URL 도 확인해보았는데 다 잘 적어줬습니다. 또 로그인 하기 전 메인 페이지에서 로그인 버튼 눌러서 로그인 모달이 뜨는 순간 콘솔 탭에 이러한 에러 메시지가 생깁니다. 위 에러 메시지는 검색해서 useEffect(() => { router.replace('/i/flow/login'); }, []); useEffect로 감싸주어서 해결하였습니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
욱둥이 댓글 1 좋아요 1 조회수 804

페러렐과 인터셉트 라우팅을 활용한 모달에 대한 질문입니다.

해결됨

Next + React Query로 SNS 서비스 만들기

기존의 모달 방식(제 기준) 은 Context나 recoil과 같은 상태관리 모달로 Provider를 만들어서 isOpen setIsOpen과 같이 사용했는데 이번에 배운 방식도 좋은 방법인 것 같지만, 폴더 구조가 엉망이 되서 가독성이 떨어지는 것 같다는 생각이 들어서 강사님 생각에는 어떤 방식이 어느 상황에서 더 좋을 것 같은지 궁금해서 질문 드려 봅니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
리액트 매니아 댓글 1 좋아요 1 조회수 548

github에 올라와 있는 파일중에 module.css파일이 있나요?

해결됨

Next + React Query로 SNS 서비스 만들기

저는 여기서 파일을 zip으로 다운받아서 복사하려고 했는데 https://github.com/ZeroCho/next-app-router-z module.css파일을 찾을 수가 없어서 혹시 어디서 찾아야 할까요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
리액트 매니아 댓글 1 좋아요 0 조회수 474

타입스크립트 질문

미해결

Next + React Query로 SNS 서비스 만들기

useFormState initialState부분 타입스크립트 에러 질문입니다. message에 string이 와야한다고 에러가 뜨는데 이거를 string | null로 해주는 방법을 잘 모르겠습니다! const initialState: { message: string | null; } = { message: null, }; export default function SignupModal() { const [state, formAction] = useFormState(onSubmit, initialState); const { pending } = useFormStatus(); 일단 이런식으로 빼서 에러 없애긴하였는데 인라인으로는 못하나요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
욱둥이 댓글 3 좋아요 0 조회수 1163

프론트엔드 세션과 백엔드 세션 / queryClient.getQueryCache에 대한 질문이 있습니다!

해결됨

Next + React Query로 SNS 서비스 만들기

안녕하세요! 제로초님! 항상 강의를 감사히 잘 보고있습니다! 다름이 아니라, 세션에 대한 질문이 있어 글을 올립니다. 첫번째 질문입니다! 현재 클라이언트(브라우저)에서 로그인 요청 시, auth.js를 사용해서 프론트측 세션을 생성하고, 그것을 통해서 클라이언트의 로그인 상태에 대한 분기 기준으로 사용하고 있고, 백엔드에서도 API 허가를 위한 세션을 받아 connect.sid 라는 쿠키를 생성하여 총 2개의 쿠키를 이용하고 있습니다. 제가 궁금한 것은 현재 2개로 나누어진 세션을 백엔드에서 주는 세션으로 생성한 쿠키 1개만 사용해도 되지 않을까? 라는 생각이 들었는데, 각각 따로따로 세션을 생성해서 처리하는 이유가 궁금합니다. 혹시 프론트엔드 입장에서 next-auth (auth.js)가 제공해주는 기능(CSRF, useSession, signin 등의 메서드... )들이 편리해서, 이것을 사용하신것이고 강의에서 언급하신대로 백엔드 세션과 통합하는 과정이 아직 불완전하여 따로 둔 상태로 둔 것이며, 만약 next-auth가 주는 장점이 굳이 없었다면 처음부터 백엔드 세션 1개를 이용해서 로그인 과정을 구현했을 것 이다. 라고 제가 감히 예상을 해도 될까요.. ? 🤔 두번째 질문입니다. [재게시, 답글기능 zustand로 만들어보기] 강의 17분 40초 부근에서 queryClient.getQueryData 보다 getQueryCache를 사용하는게 더 정확하다라고 말씀하셨는데 그 이유가 궁금합니다!

  • react
  • next.js
  • react-query
  • next-auth
  • msw
withkey 댓글 1 좋아요 1 조회수 703

패러랠 라우트 질문(로그인 모달 관련)

해결됨

Next + React Query로 SNS 서비스 만들기

로그인모달을 패러랠 라우트 방식으로 구현하는 과정에서 default.tsx 강의 타임라인 0:34에서 app/(beforeLogin)/@modal 폴더에 있던 page.tsx와 login.module.css파일을 복사해서 app/(beforeLogin)/i/flow/login로 디렉터리를 만들어서 거기에다가 page.tsx와 login.module.css파일로 넣으셨는데요. URL이 http://localhost:3000/i/flow/login이면 @modal 하위에도 그 url 경로대로 폴더 구조를 맞춰서 넣어줘야 하는 것이죠? 패러랠방식에 대해서 아직 감이 안잡힙니다. (beforeLogin)폴더 자식으로 @modal폴더와 layout.tsx에 가 있고 laytout.tsx에서 modal을 props로 가져옵니다. 그럼 그 modal이라고 이름지은 것은 같은 뎁스에 있는 "@자기이름"인 @modal을 탐색해서 가져오는건가요? import { ReactNode } from "react"; import styles from "@/app/page.module.css"; type Props = { children: ReactNode; modal: ReactNode; }; export default async function BeforeLoginLayout({ children, modal }: Props) { return ( <div> <div className={styles.container}> {children} {modal} </div> </div> ); }

  • react
  • next.js
  • react-query
  • next-auth
  • msw
gga01075 댓글 1 좋아요 2 조회수 916

인터셉팅 라우트 버그?..

미해결

Next + React Query로 SNS 서비스 만들기

게시하기 버튼 클릭하면 인터셉팅 라우트가 되지 않네요 ㅜ 회원가입, 로그인에서는 인터셉팅 라우트가 잘 됬었는데 왜이러는걸까요?.. 아직 넥스트가 불안정 한건지.. 검색해도 잘 안나오네요..

  • react
  • next.js
  • react-query
  • next-auth
  • msw
욱둥이 댓글 1 좋아요 0 조회수 672

google font fetchError 가 나는데요...

미해결

Next + React Query로 SNS 서비스 만들기

섹션1까지 들은 수강생입니다 🙂 프로젝트 실행시 아래와같은 에러가 나오는데요.. 어떻게 해결해야할지 ㅠㅠ FetchError: request to https://fonts.gstatic.com/s/inter/v13/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2pL7W0Q5n-wU.woff2 failed, reason: self-signed certificate in certificate chain at ClientRequest.<anonymous> (C:\simjieun\study\next.js\twitter_clone_nextjs\node_modules\next\dist\compiled\node-fetch\index.js:1:65756) at ClientRequest.emit (node:events:514:28) at TLSSocket.socketErrorListener (node:_http_client:501:9) at TLSSocket.emit (node:events:514:28) at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { type: 'system', errno: 'SELF_SIGNED_CERT_IN_CHAIN', code: 'SELF_SIGNED_CERT_IN_CHAIN' } ⨯ Failed to download `Inter` from Google Fonts. Using fallback font instead. Failed to fetch `Inter` from Google Fonts.} FetchError: request to https://fonts.gstatic.com/s/inter/v13/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1pL7W0Q5n-wU.woff2 failed, reason: self-signed certificate in certificate chain at ClientRequest.<anonymous> (C:\simjieun\study\next.js\twitter_clone_nextjs\node_modules\next\dist\compiled\node-fetch\index.js:1:65756) at ClientRequest.emit (node:events:514:28) at TLSSocket.socketErrorListener (node:_http_client:501:9) at TLSSocket.emit (node:events:514:28) at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { type: 'system', errno: 'SELF_SIGNED_CERT_IN_CHAIN', code: 'SELF_SIGNED_CERT_IN_CHAIN' } ....

  • react
  • next.js
  • react-query
  • next-auth
  • msw
simjieun 댓글 1 좋아요 0 조회수 1100

nextjs 버전

해결됨

Next + React Query로 SNS 서비스 만들기

'Next프로젝트 시작하기' 6:50 초에 현재는 npx create-next-app@latest 명령시 14버전이 설치되는데 상관이 없는건가요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
gga01075 댓글 1 좋아요 2 조회수 712

vanila-extract window 문제

해결됨

Next + React Query로 SNS 서비스 만들기

windows 에서 vanila-extract 의 문제점은 구체적으로 어떤 것일까요? https://github.com/vanilla-extract-css/vanilla-extract/issues/1086 해당 이슈가 맞는지 궁금합니다!

  • react
  • next.js
  • react-query
  • next-auth
  • msw
부드러운 펭귄 댓글 1 좋아요 0 조회수 1049

react-query 에러

해결됨

풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기

3강 학습 중 react-query 버전 문제로 인한 에러가 생겨 질문합니다. 최신 버전으로 설치해서 react-query의 가이드 문서대로 코드를 수정했는데도 계속 에러가 나며 data를 가져오지 못 하고 있습니다. 어떻게 해결해야 할지 모르겠습니다ㅜ 첨부된 사진 외에는 강의대로 코드를 작성했으며 타입스크립트가 아닌 자바스크립트로 진행하고 있습니다.

  • react-query
  • react
  • graphql
  • firebase
김지현 댓글 1 좋아요 0 조회수 1084

infiniteQuery 시 undefined 에러

미해결

Slack 클론 코딩[실시간 채팅 with React]

안녕하세요, 강의는 swr로 보고 저는 제로초님 깃헙에 front-rq 레포 보면서 react-query로 진행 하고 있는데요, 강좌가 swr이라 가능하면 혼자 에러 해결하려 했는데 몇시간째 해결이 안되서 질문 남깁니다ㅜ 부탁드립니다. 에러 원인은 chatData가 undefined 여서 생기는 것 같습니다. pages/Channel/index.tsx에서 useInfiniteQuery 요청이 안가고 chatData가 undefined로 나옵니다. members, channels 정보 요청은 정상적 불러오는데 useInfiniteQuery로 불로온 요청은 응답하지 않는 이유를 모르겠습니다. 강의 보면서 하다가 isLoading, isFetching 도 넣어보고, 순서도 바꿔 보고 했는데 안되서 지금은 제로초님 git hub에 fornt-rq 폴더의 코드를 복붙했는데도 Can't not read properties undifined 에러 뜨네요 ㅠ 전체 코드 https://github.com/HomieKim/sleact/blob/master/pages/Channel/index.tsx

  • react-query
  • Socket.io
  • 웹팩
  • typescript
  • react
  • babel
  • 클론코딩
homie 댓글 1 좋아요 0 조회수 1100

2일차 강의중 에러 문의 QueryClient

해결됨

풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기

1일차까지는 강의를 잘따라가고 있었는데요. 2일차 들어서 에러가 발생합니다. yarn run dev를 실행하면 아래와 같은 메시지가 나옵니다. > Local: http://localhost:3000/ > Network: use `--host` to expose ready in 725ms. X [ERROR] Expected ";" but found "client" src/queryClient.ts:20:15: 20 │ retrun client │ ~~~~~~ ╵ ; Build failed with 1 error: src/queryClient.ts:20:15: ERROR: Expected ";" but found "client" 참고로 아래는 강의 따라가고 있는 깃허브 주소입니다. https://github.com/ucoder-git/vowing-live/blob/main/shopping-mall/src/queryClient.ts import { QueryClient } from 'react-query' type AnyOBJ = { [ key : string ]: any } export const getClient = (() => { let client : QueryClient | null = null return () => { if (! client ) client = new QueryClient ({ defaultOptions : { queries : { cacheTime : 1000 * 60 * 60 * 24 , staleTime : 1000 * 60 , refetchOnMount : false , refetchOnReconnect : false , refetchOnWindowFocus : false , }, }, }) retrun client } })() const BASE_URL = "https://fakestoreapi.com"

  • graphql
  • react
  • graphql
  • js
  • firebase
  • react
  • queryclient
  • react-query
Ucopy Theme 댓글 1 좋아요 0 조회수 543

리엑트 쿼리 버전 질문!

미해결

[리뉴얼] React로 NodeBird SNS 만들기

안녕하세요 제로초님 리엑트쿼리 버전을 보면서 궁금한것이 있어 질문드립니다. 1. _app.tsx의 코드에서 const queryClientRef = useRef < QueryClient >(); if ( ! queryClientRef . current ) { queryClientRef . current = new QueryClient (); 리엑트쿼리 공식문서에선 useState를 사용하였고 제로초님 코드에서 Ref를 사용하였던데 ref 사용하신이유가 렌더링관련해서 더나은 이점이 있을거라 추측했는데 어떤건가요!? 2. getServerSideProps에서 리엑트쿼리로 비동기 값을 로드하고서 같은 쿼리키로 사용한 데이터를 콘솔로그 찍었을때 맨첨에 undefined로 찍혀서 질문드립니다. 제가 생각했을때는 서버에서 데이터를 로드하고서 쿼리키에 저장시키니까 코드를 사용하는 로직에서 같은 쿼리키의 데이터를 콘솔로그 찎으면 값이 채워져 있어야한다고 생각하는데 제가 코드를 잘못짠건지 아니면 이해를 잘못한건지 궁금합니다. 해당 데이터가 서버에서 로드됬는지 확인할수 있는 방법이 있을까요? 3. props: {dehydratedState: JSON.parse(JSON.stringify(dehydrate(queryClient))), getServerSideProps의 로직에서 dehydrate(queryClient)를 JSON.parse(JSON.stringify)로 묶으신 이유가 무엇인지 궁금합니다 감사합니다

  • react-query
  • Next.js
  • redux
  • react
  • express
  • nodejs
박재호 댓글 1 좋아요 0 조회수 387

유저 정보 관리 방법

해결됨

Slack 클론 코딩[실시간 채팅 with React]

안녕하세요 강의 들으면서 제로초님 github(front-rq폴더) 보고 react-qeury로 진행하고 있는데요 로그인 페이지를 보면 fetcher로 유저정보 요청하고 로그인 mutation 요청 성공시 refetchQueries로 'user'라는 키값의 요청을 다시 보내는 것 같습니다. 이후 다른 컴포넌트나 페이지에서도 그냥 const { data : myData } = useQuery ( 'user' , ( ) => fetcher ( { queryKey : '/api/users' } ) ) ; 이런식으로 유저정보를 가지고 오는 것 같은데 궁금한 것은 아직 강의 뒷부분을 다 안들어서 그런지 몰라도 staleTime이나 cacheTime을 설정하는 코드 또는 강의에서 말씀해주신 것 처럼 fetcher를 여러개 둬서 유저정보를 비동기 요청이 아니라 전역 데이터로 관리하는 로직도 없는 것 같습니다. 별도의 설정없이 /api/users 요청을 useQuery로 계속 받아온 다면 react-query 라이브러리를 사용하는 장점이 없는 것 같은데 제가 놓치고 있는 부분이 있는건 아닌지 혹시 react-query 사용했을 때 api/users 같은 유저정보를 받아오는 server state를 관리하는 좋은 방법은 무엇일지 궁금합니다. (cacheTime을 설정하거나 전역 데이터를 저장하는 fetcher를 두거나 아님 localStorage 같은 곳에 저장하거나 등등.. redux 강의 들을땐 그냥 리덕스 스토어에 저장해두고 useSelector로 가져온 거 같은데 react-query 나 SWR은 요부분이 감이 안잡히네요 ㅠ)

  • react-query
  • babel
  • 웹팩
  • typescript
  • react
  • Socket.io
  • 클론코딩
homie 댓글 1 좋아요 0 조회수 583

인기 태그

인프런 TOP Writers

주간 인기글