Home >Web Front-end >JS Tutorial >Mastering URL Parameters and Query Strings in React Router v6
URL parameters and query strings are important aspects of URL management in web applications. They allow you to pass dynamic data to different routes and manage routing based on that data. React Router v6 provides seamless support for handling URL parameters and query strings, allowing you to build more dynamic and flexible applications.
URL parameters, also known as route parameters or dynamic parameters, are parts of the URL that can be used to capture dynamic values. These are typically used to identify specific resources or entities.
For a route like /profile/:username, the username part is a URL parameter.
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link, useParams } from 'react-router-dom'; const Profile = () => { // Use the useParams hook to access URL parameters const { username } = useParams(); return <h2>Profile of {username}</h2>; }; const App = () => { return ( <Router> <nav> <ul> <li><Link to="/profile/john">John's Profile</Link></li> <li><Link to="/profile/sarah">Sarah's Profile</Link></li> </ul> </nav> <Routes> <Route path="/profile/:username" element={<Profile />} /> </Routes> </Router> ); }; export default App;
Query strings are key-value pairs that appear after a ? in the URL. They are typically used to pass additional information to the server or to modify the behavior of a page without changing the route.
For a URL like /search?query=React, the query string is ?query=React.
In React Router v6, query strings can be accessed using the useLocation hook. useLocation provides access to the current URL, including the pathname, search (query string), and hash.
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link, useParams } from 'react-router-dom'; const Profile = () => { // Use the useParams hook to access URL parameters const { username } = useParams(); return <h2>Profile of {username}</h2>; }; const App = () => { return ( <Router> <nav> <ul> <li><Link to="/profile/john">John's Profile</Link></li> <li><Link to="/profile/sarah">Sarah's Profile</Link></li> </ul> </nav> <Routes> <Route path="/profile/:username" element={<Profile />} /> </Routes> </Router> ); }; export default App;
You can also use both URL parameters and query strings in the same route. For example, you might want to show a user profile based on a dynamic username and filter the data using query parameters.
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link, useLocation } from 'react-router-dom'; const Search = () => { // Use the useLocation hook to access the query string const location = useLocation(); const queryParams = new URLSearchParams(location.search); const query = queryParams.get('query'); // Extract query parameter from the URL return ( <div> <h2>Search Results</h2> {query ? <p>Searching for: {query}</p> : <p>No search query provided</p>} </div> ); }; const App = () => { return ( <Router> <nav> <ul> <li><Link to="/search?query=React">Search for React</Link></li> <li><Link to="/search?query=JavaScript">Search for JavaScript</Link></li> </ul> </nav> <Routes> <Route path="/search" element={<Search />} /> </Routes> </Router> ); }; export default App;
React Router v6 makes it simple to handle both URL parameters and query strings in your routing logic. Using the useParams hook, you can easily access dynamic route parameters, while useLocation and URLSearchParams help manage query strings. By understanding and using these tools effectively, you can create dynamic and flexible React applications with enhanced routing capabilities.
The above is the detailed content of Mastering URL Parameters and Query Strings in React Router v6. For more information, please follow other related articles on the PHP Chinese website!