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

5.7 react 路由

react 状态管理库 14:20

  • react 路由(补充) 数据路由

  • 路由hooks

    • 路由跳转 (方法 标签/内置方法)

    • 获取路由地址栏信息

    • 动态路由实现(多角色权限路由)

  • redux redux-toolkit 状态管理

  • antd 组件使用

1.react 路由 声明式路由

v7: 数据式路由【推荐】 声明式路由

v6: 约定式路由【推荐】 配置式路由

main.js

  import { createRoot } from 'react-dom/client'import './index.css'import App from './App'import { BrowserRouter, Routes, Route } from "react-router";import Home from '@/pages/home/Home'import Coding from '@/pages/coding/Coding'import Pins from '@/pages/pins/Pins'import Course from '@/pages/course/Course'​import Following from '@/pages/following/Following'import Frontend from "@/pages/frontend/Frontend";​createRoot(document.getElementById('root')).render(<BrowserRouter><Routes><Route path="/" element={<App />}><Route   element={<Home/>}><Route index element={<Following/>}></Route><Route path="frontend" element={<Frontend/>}></Route></Route>                </Route></Routes></BrowserRouter>)

2.路由hooks

2.1 跳转页面
  • 通过组件跳转 原理 重新封装了a 标签

      <NavLink to="跳转路径" >Home</NavLink>
  • 函数式编程 跳转 hooks 跳转

  import { useNavigate } from "react-router";​​let navigate = useNavigate();​navigate(数字)  //前进几页  后退几页navigate('/goods')   //直接跟路径

2.2 获取路由地址栏信息

  import { useLocation } from 'react-router'​let location = useLocation()   //{path:'/xxx',hash:'/#/xxx'}​​

3.外卖管理系统 -项目搭建

  • 技术栈

vite

react19

react-router v7

less [新知识点:模块化css]

axios || Fetch [新知识点:fetch代替axios]

antd [新知识点]

antd charts [新:图表插件]

  • 路由配置

1.创建所有的页面

2.创建路由配置文件 src/router/index.jsx

注意 layout 页面需要反复多次使用

  import { createBrowserRouter } from "react-router";​import App from '@/App'import Login from '@/pages/login/Login'import Layout from '@/pages/layout/Layout'import Home from '@/pages/home/Home'import AccountList from '@/pages/account/List'import AccountEdit from '@/pages/account/Edit'import AccountAdd from '@/pages/account/Add'import AccountCenter from '@/pages/account/Center'import Order from "@/pages/order/Order";const router = createBrowserRouter([{path: "/",Component:App,children:[{index:true,Component:Login},{path:"home",Component:Layout,children:[{index:true,Component:Home},]},{path:'account',Component:Layout,children:[{path:'list',Component:AccountList},{path:'add',Component:AccountAdd},{path:'center',Component:AccountCenter},{path:'edit',Component:AccountEdit}]},{path:'order',Component:Layout,children:[{index:true,Component:Order}]}]},​​​])​​export default router

3.修改main.jsx 的配置

全局注入 路由配置

  ​import { createRoot } from 'react-dom/client'import './index.css'import {RouterProvider} from 'react-router'import router from '@/router'​createRoot(document.getElementById('root')).render(<RouterProvider router={router}></RouterProvider>)​

4.根页面和 一级页面需要进行占位

  • app.jsx

  import React from 'react'import { Outlet } from 'react-router'export default function App() {return (<><Outlet /></>)}​
  • layout.jsx

  import React from 'react'import { Outlet } from 'react-router'export default function Layout() {return (<><div>顶部</div><div>左侧菜单</div><div><Outlet></Outlet></div></>)}​

4.antd 使用

  • 下载安装

  pnpm install antd
  • 使用

  import React from 'react'import { Button , Form, Input } from 'antd';import './index.less'export default function Login() {​const onFinish = values => {console.log('Success:', values);};​​return (<><div className="login"><div className="form-box">​<FormonFinish={onFinish}>​<Form.Itemlabel="账号"name="account"rules={[{ required: true, message: '请输入您的账号' }]}><Input /></Form.Item>​<Form.Itemlabel="密码"name="password"rules={[{ required: true, message: '请输入密码' }]}><Input.Password /></Form.Item>​<Form.Item label={null}><Button type="primary" htmlType="submit">登录</Button></Form.Item>​​​</Form>​​</div></div></>)}​

相关文章:

5.7 react 路由

react 状态管理库 14:20 react 路由&#xff08;补充&#xff09; 数据路由 路由hooks 路由跳转 &#xff08;方法 标签/内置方法&#xff09; 获取路由地址栏信息 动态路由实现&#xff08;多角色权限路由&#xff09; redux redux-toolkit 状态管理 antd 组件使用 1.…...

8. HTML 表单基础

表单是网页开发中与用户交互的核心组件&#xff0c;用于收集、验证和提交用户输入的数据。本文将基于提供的代码素材&#xff0c;系统讲解 HTML 表单的核心概念、常用控件及最佳实践。 一、表单的基本结构 一个完整的 HTML 表单由以下部分组成&#xff1a; <form action&q…...

遥感数据处理、机器学习建模与空间预测的全流程指南——涵盖R语言(随机森林、XGBoost、SVM等)、特征提取、模型优化及生态学案例分析

随机森林是一种强大的集成学习方法&#xff0c;特别适用于复杂的遥感数据分析。它通过构建多棵决策树并引入随机性&#xff0c;有效降低模型的方差和过拟合风险。在训练过程中&#xff0c;随机森林利用Bootstrap抽样生成多样化的训练集&#xff0c;并在节点分裂时随机选择特征子…...

Android 数据持久化之数据库存储 Room 框架

一、简介 Room 是 Google 推出的 Android 持久层框架&#xff0c;建立在 SQLite 之上&#xff0c;提供了一个抽象层&#xff0c;简化了数据库操作。它通过注解和编译时检查来确保数据操作的正确性。 Room 主要由以下三个组件组成&#xff1a; Entity&#xff08;实体&#x…...

空间数据分析新趋势:AI 与 ArcGIS Pro 的协同创新

技术点目录 AI&#xff08;DeepSeek、ChatGPT&#xff09;大模型介绍及应用AI&#xff08;DeepSeek、ChatGPT&#xff09;支持下空间数据处理及分析功能基础AI&#xff08;DeepSeek、ChatGPT&#xff09;支持下空间数据选择及读取AI&#xff08;DeepSeek、ChatGPT&#xff09;支…...

Oracle OCP认证考试考点详解083系列10

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 46. 第46题&#xff1a; 题目 解析及答案&#xff1a; 查看以下配置&#xff1a; CDB1 和 CDB2 是两个容器数据库。 PDB1 是 CDB1 中的一…...

【linux常用指令】du命令

今天收到通知需要将服务器上的容量大的文件移动到大容量数据盘中。 du -sh */ | sort -h如果你想按大小排序显示文件夹&#xff0c;可以结合 sort 命令。这会按大小从小到大排序显示文件夹。如果想按大小从大到小排序&#xff0c;可以加上 -r 选项。 du -sh */ | sort -h -r...

统一返回JsonResult踩坑

定义了一个统一返回类&#xff0c;但是没有给Data 导致没有get/set方法&#xff0c;请求一直报错 public class JsonResult<T> {private int code;private String message;private T data;public JsonResult() {}public JsonResult(int code, String message, T data) {…...

MCP Client适配DeepSeek

本文是通过MCP官方的client例子进行修改&#xff0c;适配DeepSeek API. MCP client 先解析一下什么是MCP client。 MCP Client 是 Model Context Protocol&#xff08;模型上下文协议&#xff09;架构中的客户端组件&#xff0c;主要负责与 MCP 服务器建立和管理连接。它是一…...

物业设备管理的“多系统协同”模式:ERP、IoT与工单系统如何联动?

在智慧物业快速发展的今天&#xff0c;设备管理已从“被动维修”转向“主动预防”&#xff0c;但许多企业仍面临系统割裂、数据孤岛的困境。ERP系统记录设备台账却难实时监控&#xff0c;IoT设备采集数据却无法联动响应&#xff0c;工单系统处理流程却依赖人工流转——这些痛点…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】6.4 时间序列分析(窗口函数处理时间数据)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 PostgreSQL时间序列分析&#xff1a;窗口函数处理时间数据实战一、时间序列分析核心场景与窗口函数优势1.1 业务场景需求1.2 窗口函数核心优势 二、窗口函数基础&#xff1a…...

数据可视化:艺术与科学的交汇点,如何让数据“开口说话”?

数据可视化&#xff1a;艺术与科学的交汇点&#xff0c;如何让数据“开口说话”&#xff1f; 数据可视化&#xff0c;是科技与艺术的结合&#xff0c;是让冰冷的数字变得生动有趣的桥梁。它既是科学——讲究准确性、逻辑性、数据处理的严谨性&#xff1b;又是艺术——强调美感…...

​IP 风险画像如何实现对恶意 IP 的有效拦截?

IP 风险画像作为一种强大的技术手段&#xff0c;在识别和拦截恶意 IP 方面发挥着至关重要的作用。 IP风险画像技术简介 IP 风险画像技术通过收集和分析 IP 地址的多维度信息&#xff0c;为每个 IP 构建详细的风险评估模型。 这些维度包括但不限于 IP 的地理位置、历史访问行…...

B树如何用于磁盘 ,B+树为如何用于数据库

B树 M阶B树&#xff1a;每个节点最多M个子节点&#xff0c;每个节点最多存M-1个Key-Value值&#xff0c;key以升序排序。 构建五阶B树。 那么value是干什么的呢。 先让我们介绍一下cpu 内存 磁盘的关系 我们知道了页的概念。B树用于磁盘的读取。Key是对文件进行编号&#xff…...

image-classifier开源程序Elixir是使用电脑学习对图像进行分类并从中提取数据或描述其内容,非常不错的图片整理工具

​一、软件介绍 文末提供程序和源码下载 Elixir 机器学习功能构建一个应用程序&#xff0c;该应用程序执行图像字幕和语义搜索&#xff0c;以使用您的语音查找上传的图像&#xff01; 二、为什么做这个程序 在构建我们的应用程序时&#xff0c;我们认为 images 这是一种必不…...

HarmonyOS 鸿蒙操作物联网设备蓝牙模块、扫描蓝牙、连接蓝牙和蓝牙通信

01【HarmonyOS 蓝牙】 物联网无线传输方案、HarmonyOS蓝牙数据通信之前的准备工作 02【HarmonyOS 蓝牙】配置蓝牙权限 检测 打开 关闭蓝牙 扫描蓝牙 显示蓝牙设备 03【HarmonyOS 蓝牙】连接蓝牙 发现服务 获取特征值 读取信息 写入信息 和蓝牙模块交互 04【物联网 Wifi模块…...

STM32开发GPIO

1、什么是GPIO General Purpose lnput Output&#xff0c;即通用输入输出端口&#xff0c;简称GPIO 作用:负责采集外部器件的信息或者控制外部器件工作&#xff0c;即输入输出 2、GPIO特点 1&#xff0c;不同芯片型号&#xff0c;IO口数量可能不一样&#xff0c;可通过选型…...

【机器学习】Logistic 回归

Logistic 回归虽然名字中带有“回归”&#xff0c;但它实际上是一种广泛应用于 二分类问题 的线性分类算法。 Logistic 回归的核心任务是预测一个样本属于正类的概率&#xff0c;而概率必须在 [ 0 , 1 ] 范围内。 Logistic回归 通过将输入特征的线性组合映射到概率空间&…...

ClimateCatcher专用CDS配置教程

文章目录 API获取官网账号注册CDSAPI本地化配置 API获取官网 首先需要访问CDS官方网站&#xff0c;点我蓝色字直接到官网how-to-api点我蓝色字直接到官网 目前API的网页是这样的 账号注册 如果有账号的小伙伴可以直接登录自己的账号并跳转到CDSAPI本地化配置&#xff0c;如…...

拆解 Prompt 工程:五大场景驱动 DeepSeek 超越 ChatGPT

同样的模型、不一样的答案&#xff0c;差距往往发生在一行 Prompt 里。本文围绕五大高频实战场景&#xff0c;给出可直接复制的 DeepSeek 提问框架&#xff0c;并穿插《DeepSeek 行业应用大全》中 64 个行业模板精华&#xff0c;帮助读者迅速跑赢 ChatGPT。&#x1f31f; 剧透…...

【解决方案】CloudFront VPC Origins 实践流程深入解析 —— 安全高效架构的实战之道

目录 引言一、VPC Origins 的核心价值&#xff08;一&#xff09;安全性提升&#xff08;二&#xff09;运维效率优化&#xff08;三&#xff09;成本节约&#xff08;四&#xff09;全球分发能力的保留 二、VPC Origins 的架构解析&#xff08;一&#xff09;流量路径设计&…...

软考 系统架构设计师系列知识点 —— 黑盒测试与白盒测试(2)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点 —— 黑盒测试与白盒测试&#xff08;1&#xff09; 本文内容参考&#xff1a; 黑盒测试和白盒测试详解-CSDN博客 软件测试中的各种覆盖&#xff08;Coverage&#xff09;详解-CSDN博客 特此致谢&#xff01; 二、白…...

【背包dp----01背包】例题三------(标准的01背包+变种01背包1【恰好装满背包体积 产生的 最大价值】)

【模板】01背包 题目链接 题目描述 : 输入描述: 输出描述: 示例1 输入 3 5 2 10 4 5 1 4输出 14 9说明 装第一个和第三个物品时总价值最大&#xff0c;但是装第二个和第三个物品可以使得背包恰好装满且总价值最大。 示例2 输入 3 8 12 6 11 8 6 8输出 8 0说明 装第三个物…...

设计模式之状态模式

在日常开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象在不同时刻有不同的状态&#xff0c;不同状态下它的行为也会发生变化。此时&#xff0c;使用大量if...else或switch语句会让代码变得混乱而难以维护。为了更优雅地应对这种问题&#xff0c;状态模式(Stat…...

arXiv论文 MALOnt: An Ontology for Malware Threat Intelligence

文章讲恶意软件威胁情报本体。 作者信息 作者是老美的&#xff0c;单位是伦斯勒理工学院&#xff0c;文章是2020年的预印本&#xff0c;不知道后来发表在哪里&#xff08;没搜到&#xff0c;或许作者懒得投稿&#xff0c;也可能是改了标题&#xff09;。 中心思想 介绍开源…...

Spark处理过程-转换算子和行动算子

计算时机 转换算子 转换算子是惰性执行的&#xff0c;这意味着在调用转换算子时&#xff0c;系统不会立即进行数据处理。这种惰性计算的方式可以让 Spark 对操作进行优化&#xff0c;例如合并多个转换操作&#xff0c;减少数据的传输和处理量。行动算子 行动算子是立即执行的。…...

使用 pgrep 杀掉所有指定进程

使用 pgrep 杀掉所有指定进程 pgrep 是一个查找进程 ID 的工具&#xff0c;结合 pkill 或 kill 命令可以方便地终止指定进程。以下是几种方法&#xff1a; 方法1&#xff1a;使用 pkill&#xff08;最简单&#xff09; pkill 进程名例如杀掉所有名为 “firefox” 的进程&…...

Android学习总结之MMKV(代替SharedPreferences)

Q1&#xff1a;SharedPreferences 为什么会导致 ANR&#xff1f;MMKV 如何从根本上解决&#xff1f; 高频考察点&#xff1a;Android 主线程阻塞原理、SP 同步 / 异步机制缺陷、MMKV 内存映射技术 SP 导致 ANR 的三大元凶&#xff1a; 同步提交&#xff08;commit ()&#xf…...

SWiRL:数据合成、多步推理与工具使用

SWiRL&#xff1a;数据合成、多步推理与工具使用 在大语言模型&#xff08;LLMs&#xff09;蓬勃发展的今天&#xff0c;其在复杂推理和工具使用任务上却常遇瓶颈。本文提出的Step-Wise Reinforcement Learning&#xff08;SWiRL&#xff09;技术&#xff0c;为解决这些难题带…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】7.2 PostgreSQL与Python数据交互(psycopg2库使用)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 PostgreSQL与Python数据交互&#xff1a;psycopg2库实战指南一、引言&#xff1a;数据交互的桥梁1.1 psycopg2核心优势 二、环境准备与基础连接2.1 安装配置2.1.1 安装psyco…...

【Prompt工程—文生图】案例大全

目录 一、人物绘图 二、卡通头像 三、风景图 四、logo设计图 五、动物形象图 六、室内设计图 七、动漫风格 八、二次元图 九、日常场景图 十、古风神化图 十一、游戏场景图 十二、电影大片质感 本文主要介绍了12种不同类型的文生图技巧&#xff0c;通过加入不同的图像…...

NVM完全指南:安装、配置与最佳实践

发布于 2025年5月7日 • 阅读时间&#xff1a;10分钟 &#x1f4a1; TL;DR: 本文详细介绍了如何完整卸载旧版Node.js&#xff0c;安装NVM&#xff0c;配置阿里云镜像源&#xff0c;以及设置node_global与node_cache目录&#xff0c;打造高效Node.js开发环境。 &#x1f4cb; 目…...

成都养老机器人“上岗”,机器人养老未来已至还是前路漫漫?

近日&#xff0c;成都养老机器人“上岗”引发关注&#xff0c;赛博养老这一概念再次成为人们讨论的焦点&#xff0c;究竟赛博养老未来已来&#xff0c;还是仍需漫长等待&#xff0c;引发诸多思考。 成都研发的养老机器人“上岗”确实标志着智慧养老领域的又一进步&#xff0c;…...

数据中心 第十五次CCF-CSP计算机软件能力认证

总结一下图树算法比如krusal 迪杰斯特拉 prim算法喜欢改变距离定义 或者求别的东西 而拓扑排序喜欢大模拟 本题使用kerusal算法求出最后一条边就可以。 ac代码&#xff1a; #include <iostream> #include <vector> #include <algorithm>using namespac…...

【面试 · 一】vue大集合

目录 vue2 基础属性 组件通信 全局状态管理 vueX 路由 路由守卫 vue3 基础属性 组件通信 全局状态管理 Pinia 路由 路由守卫 vue2、vue3生命周期 setup vue2 基础属性 data&#xff1a;用于定义组件的初始数据&#xff0c;必须是一个函数&#xff0c;返回一个对…...

Java 常用的 ORM框架(对象关系映射)

Java 常用的 ORM&#xff08;对象关系映射&#xff09;框架有以下几种&#xff0c;每种都有其特点和使用场景&#xff1a; Hibernate ● 特点&#xff1a; ○ 完整的 ORM 框架&#xff0c;功能强大。 ○ 支持缓存机制&#xff08;一级缓存、二级缓存&#xff09;。 ○ 支持多种…...

自动化创业机器人:现状、挑战与Y Combinator的启示

自动化创业机器人&#xff1a;现状、挑战与Y Combinator的启示 前言 AI驱动的自动化创业机器人&#xff0c;正逐步从科幻走向现实。我们设想的未来是&#xff1a;商业分析、PRD、系统设计、代码实现、测试、运营&#xff0c;全部可以在monorepo中由AI和人类Co-founder协作完成…...

支持向量机

支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种有监督的机器学习算法&#xff0c;可用于分类和回归任务&#xff0c;尤其在分类问题上表现出色。下面将从原理、数学模型、核函数、优缺点和应用场景等方面详细介绍。 原理 支持向量机的基本思…...

华为昇腾910B通过vllm部署InternVL3-8B教程

前言 本文主要借鉴&#xff1a;VLLM部署deepseek&#xff0c;结合自身进行整理 下载模型 from modelscope import snapshot_download model_dir snapshot_download(OpenGVLab/InternVL3-8B, local_dir"xxx/OpenGVLab/InternVL2_5-1B")环境配置 auto-dl上选择单卡…...

ZArchiver解压缩工具:高效解压,功能全面

在使用智能手机的过程中&#xff0c;文件管理和压缩文件的处理是许多用户常见的需求。无论是解压下载的文件、管理手机存储中的文件&#xff0c;还是进行日常的文件操作&#xff0c;一款功能强大且操作简便的文件管理工具都能极大地提升用户体验。今天&#xff0c;我们要介绍的…...

ETL介绍

&#xff08;一&#xff09;ETL介绍 “ETL&#xff0c;是英文Extract-Transform-Load的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;、加载&#xff08;Load&#xff09;至目的端的过程。ETL一词较…...

2025.05.07-华为机考第三题300分

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 城市紧急救援队伍协同规划 问题描述 智慧城市建设中,卢小姐负责设计一套紧急救援队伍协同系统。城市被规划为一个 n n n \times n...

缓存菜品-04.功能测试

一.功能测试 redis中的数据已缓存 查询数据时并没有发sql 修改鸡蛋汤价格为5元。 缓存数据没有了 价格修改成功 停售启售是一样的。修改后清理&#xff0c;再次查询又被缓存到redis中。...

跨境电商生死局:动态IP如何重塑数据生态与运营效率

凌晨三点的深圳跨境电商产业园&#xff0c;某品牌独立站运营总监李明&#xff08;化名&#xff09;正盯着突然中断的广告投放系统。后台日志显示&#xff0c;过去24小时内遭遇了17次IP封禁&#xff0c;直接导致黑五促销期间损失23%的预期流量。这并非个案——2023年跨境电商行业…...

day 14 SHAP可视化

一、原理——合作博弈论 SHAP&#xff08;SHapley Additive exPlanations&#xff09;是一种用于解释机器学习模型预测结果的方法&#xff0c;它基于合作博弈论中的 Shapley 值概念。Shapley 值最初用于解决合作博弈中的利益分配问题。假设有 n 个参与者共同合作完成一项任务并…...

处理PostgreSQL数据库事务死锁过程

查询pg_locks表&#xff0c;获取未得到满足的锁信息&#xff1a; select * from pg_locks where granted is false ; --查询得不到锁的&#xff0c;那就是两个互相等待对方持有的锁查询活动的事务会话进程&#xff0c;和上一步的锁的事务对应起来&#xff1a; select * from …...

大数据、物联网(IoT)、平台架构与设计重构大模型应用

结合大数据、物联网(IoT)、平台架构与设计重构大模型应用,需构建一个数据驱动、实时响应、弹性扩展的智能系统。以下从技术架构、数据流、核心模块设计三个维度展开: 一、整体架构设计 分层架构(基于云-边-端协同): [物联网设备层] → [边缘计算层] → [大数据平台层]…...

开发 Chrome 扩展中的侧边栏图标设置实录(Manifest V3)

在开发自己的 Chrome 扩展 Pocket Bookmarks&#xff08;口袋书签&#xff09; 的过程中&#xff0c;我遇到了一个看似简单却颇具挑战的问题&#xff1a;如何在扩展的侧边栏显示自定义图标&#xff1f; 这篇文章记录一下我踩过的坑&#xff0c;以及最终的解决方案。 这里说的侧…...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK在Linux系统下设置多个USB相机(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK在Linux系统下设置多个USB相机&#xff08;C&#xff09; Baumer工业相机Baumer工业相机BGAPI SDK在Linux系统下设置USB相机的技术背景Linux系统内核 USB 模块内存的修改内存限制的确定使用 GRUB 引导加载程序修改内存限制使用 U-B…...

zst-2001 历年真题 知识产权

知识产权 - 第1题 发表权有时间限制 其他下面3个没有 c 知识产权 - 第2题 bd是财产权 c 知识产权 - 第3题 b 知识产权 - 第4题 d 知识产权 - 第5题 d 知识产权 - 第6题 d 知识产权 - 第7题 d 知识产权 - 第8题 b是国务院发布的 d没有复制权…...