useMutation이란?
값을 바꿀 때 사용하는 API로 return 값은 useQuery와 동일하다.
- insert, update, delete 할 경우 사용 select는 useQuery를 사용한다.
useQuery 사용 방법
사용방법
1-1) update
const save = useMutation((data: any) => axios.post('http://localhost:8080/save', data));
const onSave = () => {
save.mutate(person);
}
1-2) update 후 get 실행
const mutation = useMutation(postTodo, {
onSuccess: () => {
// postTodo가 성공하면 todos로 맵핑된 useQuery api 함수를 실행합니다.
queryClient.invalidateQueries("todos");
}
});
- mutation 함수가 성공할 때, unique key로 맵핑된 get 함수를 invalidateQueries에 넣어주면 된다.
1-3) update 후에 return된 값을 이용해 get 함수의 파라미터를 변경
const queryClient = useQueryClient();
const mutation = useMutation(editTodo, {
onSuccess: data => {
// data가 fetchTodoById로 들어간다
queryClient.setQueryData(["todo", { id: 5 }], data);
}
});
const { status, data, error } = useQuery(["todo", { id: 5 }], fetchTodoById);
mutation.mutate({
id: 5,
name: "nkh"
});
반응형
'React' 카테고리의 다른 글
[카카오 주소 API] TypeScript에서 카카오(다음) 주소 API 사용 방법 (0) | 2023.03.29 |
---|---|
[NextJS / 해킹] XSS(Cross Site Scripting) 취약점 해결 방법 (0) | 2023.03.16 |
[NextJS] Firebase Storage 파일 업로드/다운로드 방법 (0) | 2023.03.01 |
[Naver 뉴스 API] NextJS에서 네이버 뉴스 데이터 수집 방법 (0) | 2023.01.19 |
[YouTube IFrame API] React에서 유튜브 동영상 출력 방법 (1) | 2023.01.17 |