当前位置: 首页 > news >正文

用react实现一个简单的三页应用

下面是一个使用 React Router 的简单示例,演示了如何在 React 应用中实现页面之间的导航。


🛠️ 第一步:使用 Vite 创建项目

npm create vite@latest my-router-app -- --template react
cd my-router-app
npm install

在这里插入图片描述


🚀 第二步:安装 React Router

npm install react-router-dom

在这里插入图片描述


📁 第三步:修改文件结构

创建目录结构如下:

my-router-app/
├─ src/
│  ├─ pages/
│  │  ├─ Home.jsx
│  │  ├─ About.jsx
│  │  └─ User.jsx
│  ├─ App.jsx
│  └─ main.jsx

在这里插入图片描述


✏️ 编辑文件内容如下

src/main.jsx

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';ReactDOM.createRoot(document.getElementById('root')).render(<React.StrictMode><App /></React.StrictMode>
);

src/App.jsx

import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';
import Home from './pages/Home';
import About from './pages/About';
import User from './pages/User';export default function App() {return (<Router><nav style={{ marginBottom: 20 }}><Link to="/">首页</Link> | <Link to="/about">关于</Link> | <Link to="/user/42">用户42</Link></nav><Routes><Route path="/" element={<Home />} /><Route path="/about" element={<About />} /><Route path="/user/:id" element={<User />} /></Routes></Router>);
}

src/pages/Home.jsx

export default function Home() {return <h2>欢迎来到首页!</h2>;
}

src/pages/About.jsx

export default function About() {return <h2>这是关于页面。</h2>;
}

src/pages/User.jsx

import { useParams } from 'react-router-dom';export default function User() {const { id } = useParams();return <h2>用户页面,ID: {id}</h2>;
}

🧪 第四步:运行项目

npm run dev

打开浏览器访问 http://localhost:5173,点击导航链接可以看到不同页面内容,URL 路径也会改变。


在这里插入图片描述

相关文章:

  • 键盘固件刷写详解:Bootloader
  • 【目标检测标签转换工具】YOLO 格式与 Pascal VOC XML 格式的互转详解(含完整代码)
  • SSM框架(Spring + Spring MVC + MyBatis)整合配置的详细步骤
  • TLS 1.3:一把打不开旧锁的新钥匙,为何难成主流?
  • flutter利用 injectable和injectable_generator 自动get_it注册
  • 《供应链网络攻击的风险与防范》
  • auto_ptr和unique_ptr
  • Angular 面试常见问题
  • LabVIEW 2019 与 NI VISA 20.0 安装及报错处理
  • 观测云:安全、可信赖的监控观测云服务
  • 【金仓数据库征文】金仓数据库 KES 助力企业数据库迁移的实践路径
  • Nginx +Nginx-http-flv-module 推流拉流
  • 【网络编程】三、TCP网络套接字编程
  • 在Fiddler中添加自定义HTTP方法列并高亮显示
  • springboot+vue实现在线网盘(云盘)系统
  • opengl tinygltf基本概念
  • 使用Deployment部署运行Nginx和Apache服务
  • Missashe考研日记-day35
  • 【本地搭建npm私服】使用Verdaccio
  • 晶振:智能设备的“心跳”如何支撑5G与航天
  • 以军总参谋长:已进入“决定性打击计划的第二阶段”
  • 轿车追尾半挂车致3死1伤,事故调查报告:司机过分依赖巡航系统
  • 观察|印巴交火开始升级,是否会升级为第四次印巴战争?
  • 五一期间7名游客接连被困青海荒漠,警方提醒严禁非法穿越
  • 国新办将于5月8日10时就《民营经济促进法》有关情况举行新闻发布会
  • 潘功胜:降准0.5个百分点,降低政策利率0.1个百分点