大家好,今天我将讨论 React JS 中的动态路由。我将使用 react-router-dom 库,因为它易于使用且灵活,可用于客户端和服务器端路由
让我们开始吧...
设置路由部分 -
index.js\
import { BrowserRouter as Router } from 'react-router-dom'
.
.
<Router>
<App />
</Router>
.
.
- 在您的 index.js 文件中,导入 Router 组件并将 App 组件包装在 Router 组件中。
创建路线 -
应用程序.js\
import React from 'react';
import { Routes, Route, Link } from 'react-router-dom';
import UserDetails from './UserDetails';
import './App.css';
function App() {
const users = [1,2,3,4,5,6,7,8,9,10];
return (
<div className="">
<div className="mx-20 flex gap-5 my-24">
{
users.map((user) => {
return (
<Link to={`users/${user}`}>User {user}</Link>
)
})
}
</div>
<Routes>
<Route path="users/:userId" element={<UserDetails />} />
</Routes>
</div>
);
}
export default App;
- 首先,我们从 react-router-dom 导入了 Routes、Route 和 Link。
- Routes 用于将所有 Route 组件包装在其中。
- Route 用于指定将在特定路径或 url 处呈现哪个组件,使用“path”属性提供路径,使用“元素”属性提供组件。
- 链接用于使用“to”属性将用户重定向到链接中提供的路径。我们使用模板字符串使链接动态化,并将用户数组的值映射到具有 1-10 数字的链接组件。
- 在 Route 组件的“path”属性中,我们使用了“users/:userId”,“:”冒号用于使路由动态化,可以使用冒号后的路由路径中提供的名称“userId”访问参数.
创建动态组件 -
用户详细信息.js\
import React from 'react'
import {useParams} from 'react-router-dom';
function UserDetails() {
const {userId} = useParams();
return (
<div>
<h1 className="text-indigo-600 m-12">User {userId}</h1>
</div>
)
}
export default UserDetails
- 我们使用 useParam 挂钩从 url 访问参数值。
- 如您所见,我们使用完全相同的值“userId”来访问该值。
- 您可以检查输出,当您单击任何链接时,UserDetail 组件中的文本将被更改。
感谢您查看这篇文章
\