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'


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

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

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

    import {Routes,Route,Navigate } from "react-router-dom"


    //重定向到home
    <Route path="/" element="">

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

    import {NavLink} from "react-router-dom"
    //跳转到home

  • 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:
    },
    {
    path: '/about',
    element:
    children: [
    {
    path: 'tel',
    element:
    }
    ]
    }
    ])
    return routes

相关推荐
北辰alk14 分钟前
Next.js 全栈开发指南:从项目初始化到生产环境部署
react.js
梦帮科技1 小时前
GRAVIS v4.0:基于Web的极速套利架构设计与实时数据流实现
前端·人工智能·rust·自动化·区块链·智能合约·数字货币
liuyicenysabel1 小时前
大模型学习笔记 · 第八篇 · 进阶:偏好对齐与多卡训练
人工智能·笔记·学习
爱勇宝2 小时前
办公资料反复修改、补传、交接混乱,我做了个桌面工具来解决这件事
前端·后端·程序员
微信开发api-视频号协议2 小时前
企业微信外部群开发自动化实践过程
java·前端·微信·自动化·企业微信·ipad
甲维斯2 小时前
Fable5:20美金的顶级设计师!
前端·人工智能
kyriewen3 小时前
我同时用了 Claude Code、Cursor 和 Codex,说说三个工具的真实差距——2026 年选错工具比不用 AI 更浪费时间
前端·ai编程·claude
Jackson__3 小时前
为了拯救我的腰椎和颈椎,我做了款浏览器插件!
前端·javascript·开源
闲猫3 小时前
Python FastAPI + SQLAlchemy 入门教程:从零搭建你的第一个 Web 应用
前端·python·fastapi
林小帅4 小时前
NestJS v11 + Prisma v7 ESM 迁移配置解析
前端·javascript·后端