Skip to main content

handle

An arbitrary object associated with a route that can be accessed by parent routes and components. Useful for breadcrumbs, navigation, permissions, and other route-level metadata.

Signature

The handle can be any value, but is typically an object containing metadata about the route.

Basic Example

Accessing Handle in Components

Dynamic Breadcrumbs with Data

Permissions and Access Control

Layout Variants

I18n and Localization

Analytics and Tracking

Scroll Behavior

TypeScript Types

Best Practices

Don’t use handle for component state or data:
Avoid functions and complex objects when possible:
Define a shared type for your handle objects:
Use useMatches() to access handle data:

Common Use Cases

  1. Breadcrumbs: Show page hierarchy
  2. Navigation: Build dynamic nav from route metadata
  3. Permissions: Check access control requirements
  4. Analytics: Track page categories and labels
  5. Layout: Choose layout variant per route
  6. I18n: Determine which translations to load
  7. Scroll: Control scroll restoration behavior
  8. SEO: Add route-specific meta information

See Also

  • useMatches - Access route matches and handles
  • meta - Define meta tags