[Next.js] SWR 개념 사용해보기

2023. 6. 14. 17:29·Next.js
목차
  1. 사용
  2. 활용
  3. Typescript
  4. Next.js에서 swr사용하기
728x90
반응형

: SWR은 vercel에서 제작한, 데이터를 가져오기 위한 모듈이다.

Next.js에서 유독 많이 보이는 개념이라, 정리하고자 한다. 아마도 swr이 서버 사이드 랜더링도 되기 때문인 것 같다.

사용

import useSWR from 'swr'
 
function Profile() {
  const { data, error, isLoading } = useSWR('/api/user', fetcher)
 
  if (error) return <div>failed to load</div>
  if (isLoading) return <div>loading...</div>
  return <div>hello {data.name}!</div>
}
  • key : 일반적으로 API URL을 말한다.
  • fetcher : key값을 이용해 데이터를 가져오는 함수이다. fetch 혹은 axios를 이용해 데이터를 가져온다.

활용

/api/shops라는 api에서 데이터를 가져오는 SWR hook을 사용해보자.

const fetcher = (url) => axios.get(url).then((res) => res.data);
const { data, error } = useSWR("/api/shops", fetcher);

fetcher 함수는 위에 언급한대로 axios를 이용해 url에 get 요청을 보내 데이터를 받아옵니다. fetcher 함수와 useSWR을 이용하면 위 코드와 같이 data를 받아온다.

Typescript

Typescript를 사용하고 있다면 다음과 같이 SWR에서 반환하는 데이터의 타입을 지정해 줄 수 있습니다.

interface ShopsReturn {
  ok: boolean;
  shops: string[];
}

export default function Test() {
  const fetcher = (url: string) => axios.get(url).then((res) => res.data);
  const { data, error } = useSWR<ShopsReturn>("/api/shops", fetcher);

  return <h1>{data.ok}</h1>

Next.js에서 swr사용하기

SWR과 함께 SEO를 위해 페이지를 미리 렌더링할 수 있으며 클라이언트 측에서 캐싱, 재검증, 초점 추적, 일정 간격으로 다시 가져올 수 있다.

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)
  1. 사용
  2. 활용
  3. Typescript
  4. Next.js에서 swr사용하기
'Next.js' 카테고리의 다른 글
  • [Next.js] V0.dev waitlist에서 대기타고 ai로 코딩하기
  • [Next.js] Incremental Static Regeneration의 revalidate
  • [Next.js] SSG 개념 알아보기
  • [Next.js] 노마드 코더 강의정리 part.3
Uheeking
Uheeking
안녕하세요. react, flutter, node.js에 관련해서 글을 쓰는 블로그입니다.
Uheeking의 it로그안녕하세요. react, flutter, node.js에 관련해서 글을 쓰는 블로그입니다.
Uheeking
Uheeking의 it로그
Uheeking
전체
오늘
어제

공지사항

  • 분류 전체보기 (254)
    • React (48)
    • Node.js (32)
    • Next.js (22)
    • Vue.js (15)
    • javascript (3)
    • Django (19)
    • etc (23)
    • Flutter (30)
    • Error (16)
    • AWS (11)
    • docker & Kubernetes (32)
    • git (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
250x250

인기 글

태그

  • 쿠버네티스
  • docker
  • 노드
  • Express
  • Kubernetes
  • NEXT
  • 플러터
  • sequelize
  • next.js
  • useEffect
  • 넥스트
  • SSR
  • flutter
  • Vue.js
  • firebase
  • MySQL
  • node.js
  • 장고
  • error
  • React
  • 리액트
  • 오블완
  • 티스토리챌린지
  • 도커
  • supabase
  • AWS
  • mosquitto
  • Props
  • Django
  • Create

최근 댓글

최근 글

250x250
hELLO· Designed By정상우.v4.5.2
Uheeking
[Next.js] SWR 개념 사용해보기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.