useParams 鉤子是 React Router 的一部分,用於從目前 URL 存取 動態參數。當您的路由具有動態段(例如使用者 ID、產品 ID 或嵌入路由路徑中的其他變數資料)時,此掛鉤主要有用。
例如,如果您正在建立一個部落格並希望根據其 ID 顯示特定帖子,您可以使用 useParams 從 URL 中獲取帖子 ID 並顯示相應的帖子。
const params = useParams();
假設您有一條用於顯示使用者個人資料的路由,其中路由為 /profile/:userId,且 :userId 是動態區段。
import React from 'react'; import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; import UserProfile from './UserProfile'; const App = () => { return ( <Router> <Routes> <Route path="/profile/:userId" element={<UserProfile />} /> </Routes> </Router> ); }; export default App;
import React from 'react'; import { useParams } from 'react-router-dom'; const UserProfile = () => { const { userId } = useParams(); // Extracts the userId from the URL return ( <div> <h2>User Profile</h2> <p>Displaying details for user with ID: {userId}</p> </div> ); }; export default UserProfile;
路由中可以有多個動態參數,useParams 將傳回所有動態參數。
import React from 'react'; import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; import PostDetail from './PostDetail'; const App = () => { return ( <Router> <Routes> <Route path="/post/:postId/comment/:commentId" element={<PostDetail />} /> </Routes> </Router> ); }; export default App;
import React from 'react'; import { useParams } from 'react-router-dom'; const PostDetail = () => { const { postId, commentId } = useParams(); // Extracts postId and commentId from the URL return ( <div> <h2>Post Details</h2> <p>Post ID: {postId}</p> <p>Comment ID: {commentId}</p> </div> ); }; export default PostDetail;
您也可以透過定義具有可選擇包含的參數的路由來處理可選參數。
const params = useParams();
import React from 'react'; import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; import UserProfile from './UserProfile'; const App = () => { return ( <Router> <Routes> <Route path="/profile/:userId" element={<UserProfile />} /> </Routes> </Router> ); }; export default App;
useParams 鉤子是一種從 React 元件中的 URL 存取動態參數的簡單而有效的方法。它使使用動態路由變得更加容易,並使您能夠建立更靈活和動態的應用程式。
以上是在 React 中使用 useParams Hook 存取動態路由參數的詳細內容。更多資訊請關注PHP中文網其他相關文章!