React-router v6学生管理系统笔记

快速搭建服务器

我们使用的json-server

复制代码
初始化 npm init -y 
下载json-server
配置启动命令:"json:server":"json-server --watch db.json"
启动:npm run json:server

安装依赖

复制代码
npm i react-router-dom //安装路由
npm i axios  

React-route 路由总结

组件

  • BrowserRouter:整个路由以history模式开始,包裹跟组件

  • HashRouter: 整个前端路由以hash模式开始,包裹跟组件

    在index.js中
    import {BrowserRouter,HashRouter} from 'react-router-dom'
    <HashRouter>
    <App />
    </HashRouter>

  • Routes:主要是提供上下文环境

  • Route:在Route组件中,书写对应的路由,以及路由对应的组件
    path:匹配的路由
    element:匹配该路由要渲染的组件

  • Navigate:导航组件,类似于useNavigate的返回值函数

    import {Routes,Route,Navigate } from "react-router-dom"
    <Routes>
    <Route path="/home" element="<Home />"></Route>
    //重定向到home
    <Route path="/" element="<Navigate replace to="/home"></Navigate>"></Route>
    </Routes>

  • NavLink:类似于Link,最终会被渲染成a标签,他和link区别是有一个active的激活样式,一般做导航栏的跳转

    import {NavLink} from "react-router-dom"
    //跳转到home
    <NavLink to="/home"></NavLink>

  • Outlet:可以理解为 vue中的RouterView

hooks

  • useLocation: 获取location对象,我们可以获取state属性,这往往是其他路由跳转过来,传递额外的数据

    navigate('/home',{
    state:{
    name:'张三',
    type: 'delete'
    }
    })

    import {useLocation} from "react-router-dom"
    const location = useLocatioin()

  • useNavigate: 会返回一个函数,通过该函数做跳转

    import {useNavigate} from "react-router-dom"
    const navigate = useNavigate()
    navigate('/home')

  • useParams: 获取动态参数

    import {useParams} from "react-router-dom"
    const params= useParams()
    console.log("动态参数params:"+params)

  • useRoutes:通过函数hook形式定义

    import {useRoutes} from "react-router-dom"

    const routes = useRoutes([
    {
    path: '/home',
    element: <Home />
    },
    {
    path: '/about',
    element: <About/>
    children: [
    {
    path: 'tel',
    element: <Tel />
    }
    ]
    }
    ])
    return routes

相关推荐
竹林81818 小时前
用Viem替代ethers.js:从一次签名失败到完整迁移的实战记录
前端·javascript
之歆18 小时前
DAY08_CSS浮动与行内块布局实战指南(上)
前端·css
羊群智妍18 小时前
2026年AI搜索优化工具推荐:9款免费GEO监测工具实测
笔记
light blue bird18 小时前
主子端台二分法任务汇总组件
前端·数据库·.net·桌面端winform
智者知已应修善业18 小时前
【51单片机不用数组动态数码管显示字符和LED流水灯】2023-10-3
c++·经验分享·笔记·算法·51单片机
jeffwang19 小时前
我做了个让 AI 看屏幕跑测试的工具,因为 Playwright 测不了我的 Flutter Web
前端
HSunR20 小时前
dify 搭建ai作业批改流
开发语言·前端·javascript
代码不加糖20 小时前
2026 跨境电商独立站实战:从 0 到 1 搭建高转化 SaaS 商城(附源码)
开发语言·前端·javascript
二哈赛车手20 小时前
新人笔记---ES和kibana启动问题以及一些常用的linux的错误排查方法,以及ES,数据库泄密解决方案[超详细]
java·linux·数据库·spring boot·笔记·elasticsearch
亲亲小宝宝鸭20 小时前
拖一拖控件,拖出个问卷(低代码平台)
前端·低代码