2024-06-06 07:55AM
参考:https://v5.reactrouter.com/web/example/route-config
在学习React路由的路上踩了很多的坑,发现路由对于项目是非常重要的,所以要重点学习一下。
1.安装 react-router-dom
npm install react-router-dom
或者
yarn install react-router-dom
我的React项目配置如下:
package.json文件:
1 {
2 "name": "blog_front",
3 "version": "0.1.0",
4 "private": true,
5 "dependencies": {
6 "@testing-library/jest-dom": "^5.17.0",
7 "@testing-library/react": "^13.4.0",
8 "@testing-library/user-event": "^13.5.0",
9 "axios": "^0.27.2",
10 "react": "^18.2.0",
11 "react-axios": "^2.0.6",
12 "react-dom": "^18.2.0",
13 "react-router-dom": "^6.17.0",
14 "react-scripts": "5.0.1",
15 "tdesign-react": "^1.3.0",
16 "web-vitals": "^2.1.4"
17 },
18 "scripts": {
19 "start": "react-scripts start",
20 "build": "react-scripts build",
21 "test": "react-scripts test",
22 "eject": "react-scripts eject"
23 },
24 "eslintConfig": {
25 "extends": [
26 "react-app",
27 "react-app/jest"
28 ]
29 },
30 "browserslist": {
31 "production": [
32 ">0.2%",
33 "not dead",
34 "not op_mini all"
35 ],
36 "development": [
37 "last 1 chrome version",
38 "last 1 firefox version",
39 "last 1 safari version"
40 ]
41 }
42 }
2.实现路由:
代码文件:src/App.js
注意:react-router-dom版本在6.0及以上,Switch”被替换为路由“Routes”,您需要更新导入。“component”被更新为“element”来声明路由。
import React from 'react';
//导入“react-router-dom"组件
import { BrowserRouter as Router, Routes, Route, Link } from "react-router-dom";
import AboutMe from './pages/AboutMe';
import BlogList from './article/index';
import Hi from './pages/Hi';
// 定义路由数组routes(这是一个包含多个路由对象的数组,每个对象定义了一个路径(path)和对应的React组件(element))
const routes =[
{
path: '/about_me',
element: <AboutMe/>,
},
{
path: '/blog_list',
element: <BlogList/>,
},
{
path: '/hi',
element: <Hi/>
}
];
// 定义App组件
function App() {
return (
// <Router>包装整个应用程序,提供路由功能,这里使用的是BrowserRouter,它根据浏览器的URL来渲染不同的组件
<Router>
// <div> 包含导航连接件和路由渲染区域的容器
<div>
// 一个无序列表,包含导航链接
<ul>
// 列表项,包含<Link>组件
<li>
// <Link> React Router的链接组件,用于导航到应用程序的不同部分。当用户点击链接时,URL将更新,而页面不会重新加载
<Link to='/blog_list'>Blog List</Link>
</li>
<li>
<Link to='/about_me'>About Me</Link>
</li>
<li>
<Link to='/hi'>hi</Link>
</li>
</ul>
// 包含多个<Route>组件容器,用于定义应用程序的路由逻辑
<Routes>
{
// routes.map(...)使用map函数遍历routes数组,为每个路由对象生成一个<Route>组件
routes.map(function(route, i) {
return (
// 为每个路由生成<Route>组件定义了路径和要渲染的组件
<Route path={route.path} element={route.element} />
)
})
}
</Routes>
</div>
</Router>
);
};
export default App;
3.页面内容:
1) Hi文件代码如下:
import React, { Component } from 'react';
export default class Hi extends Component {
render() {
return (
<p> HI hihihi, from component </p>
);
}
}
2) About文件代码如下:
import React from 'react';
function AboutMe() {
return (
<div>
<p>Hello World!</p>
</div>
);
};
export default AboutMe;
4.Blog List文件,我就不在这里展示了,我们来看一下页面效果:
1)'/'页面
2)'/blog_list'页面
3)'/about_me'页面
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论