유승완
리액트 쿼리를 사용할 때 쿼리 옵션 단위로 관리하는 것을 메인테이너는 권장하고 있고, 아래와 같이 별도의 커스텀 훅(useTodos)을 만들기 보다는 컴포넌트에서 그대로 사용하는 것을 선호하고 있더라구요.
const todosQuery = queryOptions({
queryKey: ['todos'],
queryFn: fetchTodos,
staleTime: 5000,
});
const { data: todos } = useSuspenseQuery(todosQuery);
그런데 저는 한번 더 래핑해서 아래와 같이 useTodos와 같은 훅을 만드는 것도 의미가 명확하다는 생각이 들었어요. 물론 추상화 계층이 하나 생기면서 불편할 수 있지만요.
export const useTodos = useSuspenseQuery(todosQuery);
이 2가지 케이스에 대해서 어떤 방식을 더 선호하시는지, 그리고 그 이유는 어떻게 되는지 의견을 들어보고 싶어요!