Skip to main content

Search Parameters

Learn how to work with URL search parameters (query strings) in React Router applications.

Overview

React Router provides the useSearchParams hook for reading and updating URL search parameters. Search params are the key-value pairs in the URL after the ? character (e.g., ?sort=date&filter=active).

Reading Search Params

Use the useSearchParams hook:

Setting Search Params

Update search params programmatically:

Merging Search Params

Preserve existing params while updating:

Search Params in Loaders

Access search params server-side:

Pagination with Search Params

Implement pagination using URL parameters:
Use forms to update search params:

Filters and Facets

Implement multi-select filters:
Delay search param updates for performance:

Preserving Search Params

Keep search params across navigation:

Type-Safe Search Params

Create typed helpers for search params:

Best Practices

  1. Use descriptive param names - ?category=electronics is better than ?c=1
  2. Provide defaults - Handle missing params gracefully
  3. Preserve params when needed - Keep filters when navigating to detail pages
  4. Debounce updates - Avoid excessive URL updates on rapid changes
  5. Use forms for complex searches - Better for accessibility and functionality
  6. Keep URLs shareable - Search params make URLs bookmarkable
  7. Handle invalid values - Validate and sanitize param values
  8. Consider SEO - Search engines can index different param combinations