React
는 UI 라이브러리이기 때문에, **서버의 상태
**를 동기화하는 방법을 제공하지 않음
SWR
은 API 캐싱을 위한 React Hooks 라이브러리
mutate
함수를 사용Axios
으로도 API 캐싱을 할 수 있다. 다만 커스텀이 귀찮을 뿐.본래 스터디 주제는 react-qurey
였다.
공부하다 보니 공식문서도 아직은 별로이고, 자료도 생각보다 많지 않았음.
한국어 친화(?) 적인 SWR 공식문서이 일단 너무 맘에 들고,
SWR이 정리된 글이 많아 react-query와 동일하게 Server-State 관리 라이브러리인
SWR
을 학습하기로 결정!
React-hooks library for Data fetching The name “SWR” is derived from
stale-while-revalidate
(1) Cach-Control
Reqeust, Response
모두에 존재하는 캐시 정책을 정의하는 HTTP HEADER
이다.
Ex) Cach-Control : max-age=300
캐시의 유효시간은 300초(2) stale-while-revalidate
<aside> 💡 Cache-Control: max-age=<seconds>, stale-while-revalidate=<seconds>
</aside>
max-age ~ max-age + stale-while-revalidate
시간 동안은 캐싱 된 값을 반환하 되, 백그라운드를 통해 캐시를 검증하기 위한 요청을 보냄예시)
Cache-Control: max-age=1, stale-while-revalidate=59 (출처 : https://jooonho.com/web/2021-05-16-stale-while-revalidate/)
<aside> 💡 const { data, error, isValidating, mutate } = useSWR(key, fetcher, options)
</aside>
/api/user
key
: 요청을 위한 고유한 키 문자열(또는 함수 / 배열 / null) (고급 사용법)