路由传参(params、query)
路由参数(params)
路径参数(params)是 React Router 提供的一种通过 URL 路径传递数据的方式。您可以在 Route 中定义动态路径,然后通过 useParams 钩子访问这些参数。
示例
首先,定义一个带有动态路径的路由:
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import { UserProfile } from './UserProfile';
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/user/:id" element={<UserProfile />} />
</Routes>
</BrowserRouter>
);
}
`
在这个示例中,:id 就是一个动态的路径参数。当用户访问 /user/123 时,123 会被传递到目标组件 UserProfile 中。
在组件内部,您可以使用 useParams 钩子来访问这个参数:
import { useParams } from 'react-router-dom';
function UserProfile() {
const { id } = useParams();
return <div>User ID: {id}</div>;
}
此时,当路径是 /user/123 时,id 的值就是 123。
查询参数(query)
查询参数(query)通过 URL 的查询字符串传递数据。查询字符串以 ? 开头,多个参数通过 & 分隔。您可以使用 useLocation 钩子来访问查询参数。
示例
假设您有一个 URL 如下:
/search?query=react&page=1
您可以在 Route 中设置路径为 /search,并使用 useLocation 钩子获取查询参数:
import { useLocation } from 'react-router-dom';
function SearchPage() {
const location = useLocation();
const queryParams = new URLSearchParams(location.search);
const query = queryParams.get('query');
const page = queryParams.get('page');
return (
<div>
<h2>Search Results</h2>
<p>Query: {query}</p>
<p>Page: {page}</p>
</div>
);
}
总结
- 路径参数(params) 是 URL 路径的一部分,通常用于动态匹配和传递重要的标识符。
- 查询参数(query) 是通过 URL 查询字符串传递的额外信息,通常用于过滤或分页等场景。
这两种方式可以根据应用的需求灵活地组合使用,实现更复杂的路由传参。
相关内容
- React 的设计理念:声明式 UI、组件化 React 的设计理念侧重于声明式 UI 和组件化。这种方式使得开发者能够更高效地构建可维护、可复用的用户界面。
- React 与其他前端框架的对比(Vue、Angular) React、Vue 和 Angular 都是流行的前端框架,它们各自有不同的设计理念和使用场景。React 强调组件化和虚拟 DOM,Vue 提供了更灵活的模板...
- React 是什么? React 是一个由 Facebook 开发的用于构建用户界面的 JavaScript 库。它通过组件化和声明式编程简化了复杂界面的开发,适用于构建交互丰富的单...
- useRef、useMemo、useCallback useRef、useMemo 和 useCallback 是 React 中常用的性能优化 Hooks,帮助管理引用、避免不必要的重新渲染和计算。
- 自定义 Hook 的创建与使用 自定义 Hook 是 React 中的一种机制,用于提取和复用组件逻辑。它可以将多个组件中共享的逻辑提取到独立的函数中,从而实现代码复用。
- Hook 规则与注意事项 在使用 React Hook 时,需要遵循一些规则和注意事项。了解这些规则可以帮助你避免常见的错误和性能问题,确保应用程序的稳定性和可维护性。