Reach Router is a client-side routing library for React applications that maps URL patterns to components without full page reloads. It defines navigation rules and component rendering through declarative route configuration, using nested React component trees instead of separate configuration files.
The library supports parent-child route hierarchies so shared UI elements persist across page transitions, and provides a declarative Navigate component that triggers URL changes and view updates when rendered. It extracts dynamic segments from URL patterns and passes them as props to matched route components, while automatically managing browser focus on navigation for accessibility.
Reach Router detects browser URL changes by subscribing to the History API, enabling deep linking and browser history support. It creates clickable anchors that navigate between application-defined paths and passes data between pages by encoding parameters in the URL path or query string.