useMutation Hook for Crud Operation 2025

useMutation Hook for CRUD Operation 2025

React Query ka useMutation hook use hota hai create, update aur delete jaise operations ke liye. Yeh server state ko mutate karta hai, aur saath mein loading, error aur success state handle karta hai.

1. Setup QueryClientProvider


// index.js ya App.js mein
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';

const queryClient = new QueryClient();


  

  

2. Post/Create Data using useMutation


import { useMutation } from '@tanstack/react-query';
import axios from 'axios';

const addTodo = async (newTodo) => {
  const res = await axios.post('https://jsonplaceholder.typicode.com/todos', newTodo);
  return res.data;
};

function TodoForm() {
  const mutation = useMutation({
    mutationFn: addTodo,
    onSuccess: () => {
      alert('Todo added successfully!');
    },
    onError: () => {
      alert('Something went wrong!');
    }
  });

  const handleAdd = () => {
    mutation.mutate({ title: 'New Todo', completed: false });
  };

  return ;
}
  

3. Delete Data using useMutation


const deleteTodo = async (id) => {
  return axios.delete(`https://jsonplaceholder.typicode.com/todos/${id}`);
};

const mutation = useMutation({
  mutationFn: deleteTodo,
  onSuccess: () => console.log("Deleted"),
});
  

4. Update/Edit Data using useMutation


const updateTodo = async ({ id, updatedTodo }) => {
  return axios.put(`https://jsonplaceholder.typicode.com/todos/${id}`, updatedTodo);
};

const mutation = useMutation({
  mutationFn: updateTodo,
  onSuccess: () => console.log("Updated"),
});
  

Aap chahe to refetchQueries ya invalidateQueries ka use bhi kar sakte ho to refresh the data after mutation.