欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 用react实现router路由

用react实现router路由

2025/4/2 1:55:40 来源:https://blog.csdn.net/cf8833/article/details/146692232  浏览:    关键词:用react实现router路由

说明:
用react实现router路由
效果图:
在这里插入图片描述

step0:项目结构图:

my-react-app/
├── public/                  # 静态资源
│   ├── favicon.ico
│   └── robots.txt
├── src/
│   ├── assets/             # 静态资源
│   ├── pages/              # 页面组件
│   │   ├── Home.jsx           # 首页模块
│   │   └── User.jsx         # 用户模块
│   ├── App.jsx
│   └── main.jsx

step1:C:\Users\wangrusheng\PycharmProjects\untitled16\src\main.jsx

// src/main.jsx
import React from 'react'
import ReactDOM from 'react-dom/client'
import { BrowserRouter } from 'react-router-dom'
import App from './App.jsx'
import './index.css'ReactDOM.createRoot(document.getElementById('root')).render(<React.StrictMode><BrowserRouter><App /></BrowserRouter></React.StrictMode>
)

step2:C:\Users\wangrusheng\PycharmProjects\untitled16\src\App.jsx

// App.jsx
import { NavLink, Routes, Route, Navigate } from 'react-router-dom'
import Home from './pages/Home'
import User from './pages/User'
import './App.css' // 新增 CSS 文件export default function App() {return (<div className="app-container">{/* 左侧导航 */}<div className="sidebar"><h2>路由列表</h2><nav><NavLinkto="/home"className={({ isActive }) =>`nav-link ${isActive ? 'active' : ''}`}>首页</NavLink><NavLinkto="/user"className={({ isActive }) =>`nav-link ${isActive ? 'active' : ''}`}>用户中心</NavLink></nav></div>{/* 右侧内容 */}<div className="content"><Routes><Route path="/" element={<Navigate to="/home" />} /><Route path="/home" element={<Home />} /><Route path="/user" element={<User />} /></Routes></div></div>)
}

step3:C:\Users\wangrusheng\PycharmProjects\untitled16\src\App.css

/* App.css */
.app-container {display: flex;min-height: 100vh;
}.sidebar {width: 200px;background-color: #f5f5f5;padding: 20px;border-right: 1px solid #ddd;
}.sidebar h2 {margin-bottom: 1rem;color: #333;
}.nav-link {display: block;padding: 10px;text-decoration: none;color: #333;border-radius: 4px;margin-bottom: 8px;transition: all 0.3s ease;
}/* 鼠标悬停效果 */
.nav-link:hover {background-color: #e0e0e0;
}/* 选中状态 */
.nav-link.active {background-color: #4CAF50;color: white !important;
}.content {flex: 1;padding: 20px;background-color: white;
}

step4:C:\Users\wangrusheng\PycharmProjects\untitled16\src\pages\User.jsx

// src/pages/User.jsx
export default function User() {return (<div><h2>用户中心</h2><p>Hello World from User!</p></div>)
}

step5:C:\Users\wangrusheng\PycharmProjects\untitled16\src\pages\Home.jsx

// src/pages/Home.jsx
export default function Home() {return (<div><h2>首页内容</h2><p>Hello World from Home!</p></div>)
}

end

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词