ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • React-Query 기본 사용법
    REACT 2023. 3. 2. 14:52

    React-Query는 React 애플리케이션에서 데이터 관리를 위한 라이브러리입니다. React-Query를 사용하면 서버에서 가져온 데이터를 캐싱하고, 상태 업데이트와 재요청 등을 자동으로 처리할 수 있습니다.

    React-Query를 사용하려면 다음과 같은 단계를 따릅니다.

     

    • React-Query 설치
    npm install react-query
    yarn add react-query

     

    • Query 컴포넌트 작성

    React-Query에서 제공하는 useQuery 훅을 사용하여 데이터를 가져옵니다.

    useQuery 훅은 data, isLoading, isError 등의 상태 값을 반환합니다.

    import { useQuery } from 'react-query';
    
    function App() {
      const { data, isLoading, isError } = useQuery('todos', async () => {
        const response = await fetch('/api/todos');
        return response.json();
      });
    
      if (isLoading) {
        return <div>Loading...</div>;
      }
    
      if (isError) {
        return <div>Error occurred while fetching data</div>;
      }
    
      return (
        <ul>
          {data.map(todo => (
            <li key={todo.id}>{todo.title}</li>
          ))}
        </ul>
      );
    }

    위의 예시에서 useQuery 훅은 'todos'라는 고유한 이름의 쿼리를 만들어 API에서 데이터를 가져옵니다.

     

    • Mutation 컴포넌트 작성

    React-Query에서 제공하는 useMutation 훅을 사용하여 데이터를 수정합니다.

    import { useMutation } from 'react-query';
    
    function App() {
      const [text, setText] = useState('');
    
      const { mutate, isLoading } = useMutation(
        async newTodo => {
          const response = await fetch('/api/todos', {
            method: 'POST',
            headers: {
              'Content-Type': 'application/json',
            },
            body: JSON.stringify(newTodo),
          });
          return response.json();
        },
        {
          onSuccess: () => {
            queryClient.invalidateQueries('todos');
          },
        }
      );
    
      const handleSubmit = e => {
        e.preventDefault();
        mutate({ title: text });
        setText('');
      };
    
      return (
        <form onSubmit={handleSubmit}>
          <input type="text" value={text} onChange={e => setText(e.target.value)} />
          <button disabled={isLoading}>Add</button>
        </form>
      );
    }

     

    위의 예시에서 useMutation 훅은 데이터를 수정하는 mutate 함수를 반환합니다.

    mutate 함수를 호출하면 API에 데이터를 보내고, onSuccess 콜백에서 queryClient.invalidateQueries 함수를 호출하여 todos 쿼리를 재요청합니다.

     

    React-Query는 다양한 기능을 제공하며, 위에서는 간단한 예시만을 다루었습니다.

    더 자세한 내용은 공식 문서를 참고하세요.

    https://react-query-v3.tanstack.com/

     

    반응형

    'REACT' 카테고리의 다른 글

    React의 렌더링 성능 최적화 방법을 알아보자  (0) 2022.04.21
© 2021 J.LOG