react crash course 2024(7) react router dom

安装

npm i react-router-dom

引入

import {Route,createBrowserRouter,createRoutesFromElements,RouterProvider} from 'react-router-dom'

在app.jsx

const router = createBrowserRouter(createRoutesFromElements(<Route index element = {<h1>My App</h1>}/>)
)const App = () => {return <RouterProvider router={router}/>
}

使用object写路由

const router = createBrowserRouter([{path:"/",element:(<h2>hello rainbow</h2>)},{path:"about",element:<h2>little puppy</h2>}
])

或直接使用<Route/>组件写路由

const router = createBrowserRouter(createRoutesFromElements(<Route path='/' element={<h2>hello rainbow</h2>}></Route>
))

路由嵌套

const router = createBrowserRouter(createRoutesFromElements(<Route path='/' element={<MainLayout/>}><Route   path="contact" element = {<h5 >some peopel just bad</h5>}/></Route>
))

别忘了放子路由出口

在父 route 元素中使用outlet来渲染其子 route 元素。这允许在渲染子路由时显示嵌套 UI。

动态传参

      {/* :id 表示id是动态的 */}<Route path='/job/:id' element={<JobPage/>}/>
  • Link跳转

1.引入

import { Link } from 'react-router-dom'

2.使用

<a
href="/jobs"className="text-white hover:bg-gray-900 hover:text-white rounded-md px-3 py-2"
>Jobs</a> <Link
to="/index"
className="text-white bg-black hover:bg-gray-900 hover:text-white rounded-md px-3 py-2">Home</Link>

原有的a标签 href跳转可以改成Link 的 to,浏览器不会刷新一次再加载 

 3.active link

  • NotFoundPages
    <Route path='/' element={<MainLayout />}><Route index element={<HomePage />} /><Route path='/jobs' element={<JobsPage/>}/>{/* 包罗万象 */}<Route path='*' element={<NotFoundPages/>}/></Route>
import { Link } from "react-router-dom"
import { FaExclamationTriangle } from "react-icons/fa"
const NotFoundPages = () => {return (<section className="text-center flex flex-col justify-center items-center h-96"><FaExclamationTriangle className="fas fa-exclamation-triangle text-yellow-400 fa-4x mb-4"/><h1 className="text-6xl font-bold mb-4">404 Not Found</h1><p className="text-xl mb-5">This page does not exist</p><Linkto="/"className="text-white bg-indigo-700 hover:bg-indigo-900 rounded-md px-3 py-2 mt-4">Go Back</Link></section>)
}export default NotFoundPages

4.获得路由中带的参数

import { useParams } from "react-router-dom";
 const {id} = useParams();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频格式转换:avi格式转mp4格式

批量将avi格式的视频转换为mp4格式 # 批量avi格式视频转mp4格式 import os from moviepy.editor import VideoFileClip video_folder r视频文件路径 avi_files [f for f in os.listdir(video_folder) if f.endswith(.avi)] for avi_file in avi_files:avi_path os.path.joi…

电子证件照应用

一、亦仁分享 几乎每个人都有证件照需求&#xff0c;但绝大多数照相馆都不会给电子版&#xff0c;这衍生出自动生成证件照的需求。App Store 上&#xff0c;搜证件照&#xff0c;排名第一的 APP 付费 6 元&#xff0c;光点评就有 5439 份&#xff0c;更不用说下载量了。小程序…

如何高效管理知识产权全链条?

为了有效保护企业的创新成果&#xff0c;确保技术创意的顺利转化&#xff0c;以及高效管理知识产权案件&#xff0c;建立一套完善的知识产权管理体系至关重要。对于企业而言&#xff0c;如何有效地管理知识产权的各个环节&#xff0c;从研发项目到技术创意&#xff0c;再到提案…

计算机毕业设计 办公用品管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

基于Arduino的自弹尤克里里机器人

需要项目源码资料的可以私信我 基于Arduino的自弹尤克里里机器人 一、简介二、材料清单三、工具四、实现过程步骤1&#xff1a;实物图步骤2&#xff1a;3D打印部件步骤3&#xff1a;组装上半部分步骤4&#xff1a;组装下半部分步骤5&#xff1a;安装导轨步骤6&#xff1a;设置…

1. 如何在服务器上租GPU跑实验 (以AutoDL为例) - 深度学习·科研实践·从0到1

目录 前言 1. 在AutoDL上注册账号 2. 在算力市场选择GPU 3. 创建实例 4. 控制台-容器实例界面&#xff08;核心&#xff09; 4.1 无卡模式&#xff08;常用&#xff09; 5. 帮助文档 前言 好记性不如烂笔头&#xff0c;本专栏将详细记录下本人学习深度学习工程实践&…

从零开始手写STL库:Priority_Queue

从零开始手写STL库–Priority_Queue的实现 Gihub链接&#xff1a;miniSTL 文章目录 从零开始手写STL库–Priority_Queue的实现一、priority_queue是什么&#xff1f;二、堆是什么&#xff1f;三、priority_queue要包含什么函数总结 一、priority_queue是什么&#xff1f; 优先…

基于深度学习的图像去噪与去模糊

基于深度学习的图像去噪和去模糊是计算机视觉中的重要任务&#xff0c;旨在提升图像质量&#xff0c;去除噪声和模糊。以下是这两个领域的主要方法和技术概述&#xff1a; 1. 图像去噪 图像去噪的目标是去除图像中的噪声&#xff0c;同时尽量保留细节。主要方法包括&#xff…

程序一毛,人生九牛

Welcome 大家好&#xff0c;欢迎来到瑾芳玉洁的博客&#xff01; &#x1f611;励志开源分享诗和代码&#xff0c;三餐却无汤&#xff0c;顿顿都被噎。 &#x1f62d;有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩&#xff0c;不出意外被敷衍、被唾弃、被埋在了垃圾堆。…

ADRC线性跟踪微分器TD详细测试(Simulink 算法框图+CODESYS ST+博途SCL完整源代码)

1、ADRC线性跟踪微分器 ADRC线性跟踪微分器(ST+SCL语言)_adrc算法在博途编程中scl语言-CSDN博客文章浏览阅读784次。本文介绍了ADRC线性跟踪微分器的算法和源代码,包括在SMART PLC和H5U平台上的实现。文章提供了ST和SCL语言的详细代码,并讨论了跟踪微分器在自动控制中的作用…

Vue3动态导入后端路由

动态获取文件 // modules就是一个map&#xff0c;文件路径作为key&#xff0c;文件对象作为value const modulesimport.meta.glob(../views/**/*.vue)获取到的modules对象如下&#xff1a; 添加动态路由 import {createRouter, createWebHashHistory} from vue-routerconst m…

AutoGen实现多代理—AI Agentic Design Patterns with AutoGen(二)

1. AutoGen顺序对话在客户入职案例上的应用 如图&#xff0c;客户入职前会经历三个阶段&#xff0c;一个代理收集客户的信息&#xff0c;一个代理收集客户的感兴趣话题&#xff0c;一个代理根据前两个代理的基础信息与客户代理对话&#xff0c;产生聊天信息。 本节实验的地址&…

汽车保养BBBBBBBBBBB

小保养就是机油和机滤&#xff0c;4s店比较贵&#xff0c;可以在京东上买机油&#xff0c;可以包安装 极护、磁护 两款机油配方不同&#xff0c;极护系列机油注入液钛配方&#xff0c;拥有特别的油膜自适应能力&#xff0c;在各种形式条件下均能有效减少金属间的直接接触&…

Cilium + ebpf 系列文章-什么是ebpf?(一)

前言&#xff1a; 这篇非常非常干&#xff0c;很有可能读不懂。 这里非常非常推荐&#xff0c;建议使用Cilium官网的lab来辅助学习&#xff01;&#xff01;&#xff01;Resources Library - IsovalentExplore Isovalents Resource Library, your one-stop destination for ins…

unittest初始化,资源清理,执行所有测试用例,跳过测试用例,输出测试结果的详细程度以及discover加载文件里面的所有匹配到的.py测试用例

前言 # setUp和tearDown 每次用例执行前都会执行初始化条件和结束条件 # 执行所有用例只运行一次初始化和清理条件&#xff0c;用setupclass&#xff0c;teardownclassimport unittestclass UserTestCase(unittest.TestCase):classmethoddef setUpClass(cls):print("setU…

【蚂蚁HR-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

240929-CGAN条件生成对抗网络

240929-CGAN条件生成对抗网络 前面我们学习了GAN&#xff08;240925-GAN生成对抗网络-CSDN博客&#xff09;和DCGAN&#xff08;240929-DCGAN生成漫画头像-CSDN博客&#xff09;&#xff0c;接下来继续来看CGAN&#xff08;Conditional GAN&#xff09;条件生成对抗网络。 流…

实习问题(配置文件获取参数)

Java中用SpringBoot框架&#xff0c;当我们要获取配置文件yml里的参数时&#xff0c;用Value注解获取 如果配置文件中没有srvSealUploadPath这个参数的话&#xff0c;可以用Value("${srvSealUploadPath:data/idoc/temp}")&#xff0c;这个的意思是&#xff0c;如果配…

ros的工作空间

Create a ROS Workspace创建一个ros工作空间 $ catkin_make该命令可以在当前目录下的“src”文件夹中创建CMakeLists.txt链接。会自动生成build和devel文件&#xff0c;以下是 catkin_make 的几个主要作用&#xff1a; 构建 ROS 包&#xff1a;catkin_make 会在当前工作空间中…

【华为HCIP实战课程一】OSPF相关基础介绍及基础配置,网络工程师必修

一、OSPF介绍 开放式最短路径优先协议OSPF(Open Shortest Path First),IPv4使用的OSPFv2,针对IPv6使用OSPFv3协议。 二、为什么需要OSPF OSPF出现之前,网络广泛使用RIP路由协议,RIP由于最大16跳数限制无法适应大型网络,RIP是基于距离矢量算法的路由协议,应用在大型网…