
서버에서 데이터를 가져오는 것은 단순히 useQuery를 사용하면 될테지만,
서버의 데이터를 업데이트 하는 경우에는 동일한 방식을 사용하는 것이 적절치 않다. 데이터의 생성/수성/삭제 (CRUD) 시에는 useMutation hook을 사용하면 된다.
const {
   data,
   error,
   isError,
   isIdle,
   isLoading,
   isPaused,
   isSuccess,
   mutate,
   mutateAsync,
   reset,
   status,
 } = useMutation(mutationFn, {
   mutationKey,
   onError,
   onMutate,
   onSettled,
   onSuccess,
   retry,
   retryDelay,
   useErrorBoundary,
   meta,
 })
 
 mutate(variables, {
   onError,
   onSettled,
   onSuccess,
 })
useMutation()의 첫번째 인자인 mutationFn는 필수!useMutation()의 옵션과 리턴하는 데이터의 종류는 매우 다양하다. 공식문서 꼭 확인해보기!useMutation 써보기import { useMutation } from 'react-query';
import { getApi } from '@apis/index';
const useTodoCreator = () => {
	const mutation = useMutation((newTodo: TodosTypes) =>
		getApi.post('/todos', newTodo)
	);
	return mutation;
};
export default useTodoCreator;
import useTodoCreator from '@hooks/todos/useTodoCreator';
const TodoCreator: NextPage = (): JSX.Element => {
	const { mutate } = useTodoCreator();
	// ...
	const addItem = () => {
		// ...
		mutate(todo);
	};
	return (
		<InputWrap>
            // ...
			<button type="button" onClick={addItem}>
				등록
			</button>
		</InputWrap>
	);
};
export default TodoCreator;