티스토리 뷰
반응형
좋아요와 기능을 코딩할때, 3가지 코드의 예를 들어 useSwr을 활용한 mutate(업데이트) 기능을 설명하려고한다
이번 게시이후 useSwr과 react-query(tanstack) 을 비교해볼예정이다.
먼저 SWR에 대해서 간략하게 설명을 하자면,
SWR은 데이터를 가져오고 캐싱하여 React 애플리케이션에서 사용하기 쉽도록 도와주는 라이브러리다.
그럼 코드를 살펴보자.
const { mutate } = useSWRConfig();
const { data, mutate: boundMutate } = useSWR<ItemDetailResponse>(
typeof window === undefined
? null
: router.query.id
? `/api/products/${router.query.id}`
: null
);
우리는 useSWRConfig를 사용한 unbound mutate와 , 그냥 useSWR을 사용한 bound mutate를 살펴보도록 할 것이다.
알단 unbound 와 bound의 차이점을 말하자면, 어느 컴포넌트에서 사용하든, unbound는 얽매이지 않는다는 것이다. (유연성)
// 1. bound mutation
boundMutate((prev) => prev && { ...prev, isLiked: !prev.isLiked }, false);
// 2. unbound mutation
mutate({ ...data, product: { ...data?.product, name: "0hyeon" } }, false);
// 3. unbound mutation
mutate("/api/users/me", (prev: any) => ({ ok: !prev.ok }), false);
boundMutate는 특정 데이터에 대한 조작을 명시적으로 처리하는 반면, mutate는 다양한 데이터 조작 및 외부 요청을 처리할 수 있는 유연성을 제공한다. 선택은 작업의 목적과 특정 상황에 따라 달라질 수 있고, 명확한 대상 데이터가 있고 해당 데이터에만 작업을 수행해야 할 때에는 boundMutate를 사용하는 것이 좋을 수 있겠다. 그러나 다양한 데이터 조작이 필요하거나 외부 요청을 처리해야 할 때에는 mutate를 사용하는 것이 더 적합하다.
반응형
댓글
공지사항
반응형