React-Query 도입하기

도입 배경

React-Query 도입

const [keyword, setKeyword] = useState<string>('');

const { data } = useQuery<IAutoComplete>(
    ['getAutoComplete', keyword],
    () => searchApi.getAutoComplete({ keyword }).then((res) => res.data),
    {
      staleTime: 5 * 60 * 1000,
      onSuccess: (data) => {
        const { papers, keyword: _keyword } = data;
        if (_keyword === keyword) setAutoCompletedDatas(papers);
      },
      enabled: !!(keyword && keyword.length >= 2),
    },
  );

→ useQuery의 첫번째 인자 배열의 두번째 인자로 keyword를 넘겨서 요청시 parameter로 사용할 수 있음.

결과 : react query는 query key가 같아도 parameter가 다르면 다른 캐시에 관리한다. 자동완성 하나하나를 캐싱할 수 있음.

요청을 우다다다 날렸다면 응답이 온 순서대로 데이터를 사용하는게 아니라, 마지막에 보낸 요청에 대한 응답만 사용함.

추가로 필요한 기능 :

debounce 적용