00
:
00
:
00
:
00
Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

Mutations

useMutation

A differenza delle queries (che vengono eseguite automaticamente), le mutations vengono attivate manualmente (es. al click di un bottone).

```tsx import { useMutation, useQueryClient } from ‘@tanstack/react-query’

function AddTodo() { const queryClient = useQueryClient()

const mutation = useMutation({ mutationFn: (newTodo) => { return axios.post(‘/todos’, newTodo) }, onSuccess: () => { // Invalida e rifetch della query ‘todos’ dopo il salvataggio queryClient.invalidateQueries({ queryKey: [‘todos’] }) }, })

return (

{mutation.isPending ? ( ‘Aggiungendo…’ ) : ( <> {mutation.isError ? (
An error occurred: {mutation.error.message}
) : null}

      {mutation.isSuccess ? <div>Todo added!</div> : null}

      <button
        onClick={() => {
          mutation.mutate({ id: new Date(), title: 'Do Laundry' })
        }}
      >
        Create Todo
      </button>
    </>
  )}
</div>

) } ```

Ottimistic Updates

Puoi aggiornare la UI prima che il server risponda, per un’esperienza ultra-veloce. Se la richiesta fallisce, fai rollback. Si usa onMutate, onError e onSettled.