React Router Declarative Mode
Declarative mode is React Router's simplest mode using
< Routes
< Route path = " / " element = { < Home /> } /> < Route path = " about " element = { < About /> } /> < Route path = " dashboard " element = { < Dashboard /> }
< Route index element = { < DashboardHome /> } /> < Route path = " settings " element = { < Settings /> } /> </ Route
< Route path = " users/:userId " element = { < User /> } /> </ Routes
</ BrowserRouter
) ; } NavLink Active States Use NavLink for navigation with active styling: import { NavLink } from "react-router" ; function Nav ( ) { return ( < nav
< NavLink to = " / " end className = { ( { isActive } ) => ( isActive ? "active" : "" ) }
Home </ NavLink
< NavLink to = " /dashboard " className = { ( { isActive } ) => ( isActive ? "active" : "" ) }
Dashboard </ NavLink
</ nav
) ; } Reading URL Params Use useParams to read dynamic route segments: import { useParams } from "react-router" ; function User ( ) { const { userId } = useParams ( ) ; return < h1
User { userId } </ h1
; } Working with Search Params Use useSearchParams for query string values: import { useSearchParams } from "react-router" ; function SearchResults ( ) { const [ searchParams , setSearchParams ] = useSearchParams ( ) ; const query = searchParams . get ( "q" ) ; return ( < div
< input value = { query || "" } onChange = { ( e ) => setSearchParams ( { q : e . target . value } ) } /> < p
Results for: { query } </ p
</ div
) ; } Further Documentation If anything related to React Router is not covered in these references, you can search the official documentation: https://reactrouter.com/docs