Skip to main content

Data Revalidation

Revalidation automatically keeps your UI in sync with server data by re-running loaders after mutations and other events.

Automatic Revalidation

React Router automatically revalidates data after:
  • Action submissions via <Form>, fetcher.Form, or useSubmit
  • Returning from an action
  • URL search params change
  • Clicking a link to the same URL

Manual Revalidation

Trigger revalidation manually with useRevalidator:

Revalidation State

Track revalidation status:

Window Focus Revalidation

Polling

Conditional Revalidation

Control which routes revalidate with shouldRevalidate:

Revalidation Options

Skip Revalidation on Same URL

Only Revalidate on Mutations

Time-Based Revalidation

Parent Route Revalidation

Child route actions trigger parent loader revalidation:

Fetcher Revalidation

Fetcher submissions also trigger revalidation:
Track overall revalidation state:

Optimizing Revalidation

Parallel Loading

React Router runs all loaders in parallel during revalidation:

Cache Data

Selective Revalidation

Best Practices

Don’t Over-Revalidate

Use Optimistic UI

Update the UI immediately, then revalidate:

Show Loading States