<aside> 💡 useMutation을 이용하여 데이터를 추가해보자. 🔥🔥🔥

</aside>

개요


리액트 쿼리에선 새로운 데이터를 추가하기 위해선 useMutation 훅을 사용해야 한다.

뮤테이션의 사전적인 정의는 ‘형태, 구조상의 변화’ 를 의미하며 사이드 이펙트를 가진 함수를 의미하기도 한다.

데이터베이스에 새로운 값을 추가, 수정, 삭제 하는 행위는 사이드 이펙트에 해당하기에 그런 상황에선 useMutation() 을 사용해야한다.

사이드 이펙트?

순수 함수에서는 발생하지 않고 외부 환경에 미치는 영향을 얘기한다.

리액트에서 주로 발생하는 사이드 이펙트가 있는데 주된 요인 몇가지를 얘기해보자면!

  1. UI 업데이트 : 상태(state) 변경을 통한 UI 업데이트
  2. 네트워크 요청 : 외부 API로부터 데이터를 가져올 때, 요청을 보내고 응답을 받는 네트워크 요청
  3. 데이터 Fetching 및 조작 : 데이터를 가져오고, 조작, 저장 등의 작업
  4. 이벤트 핸들링 : 사용자의 입력에 반응하는 동작
  5. 라이프사이클 동작 : 컴포넌트의 마운트, 언마운트, 업데이트 등의 라이프사이클 이벤트

useQuery | useMutation 차이점

useQuery 의 쿼리 함수는 컴포넌트가 마운트되면서 자동으로 실행되는 반면

useMutation 은 함수를 직접 실행해줘야한다. mutate 함수를 통해 mutationFn 으로 등록했던 함수를 실행할 수 있고 그래야 데이터의 수정이 가능하다.

mutate