react 路由创建与使用

1, 安装路由

npm i react-router-dom

2,路由组件 createBrowserRouter

// router/index.js
import { createBrowserRouter } from "react-router-dom"import Home from '../page/home'
import New from '../page/new'const router = createBrowserRouter([{path: '/',element: <Home />},{path: '/new',element: <New />},// 404路由配置{path: '*',element: <NotFound />}
])
export default router

3,使用路由

//index.js
import router from './router'
import { RouterProvider } from 'react-router-dom'root.render(// <React.StrictMode><RouterProvider router={router}></RouterProvider>// </React.StrictMode>
)

4,声明式导航

import { Link } from "react-router-dom"
<Link to='/new'>new</Link>

5,编程式导航

import { useNavigate } from "react-router-dom"
// 执行navigate
const navigate = useNavigate()// 使用
<span onClick={() => navigate('/')}>跳转到首页</span>

6,传参

// ====SearchParams======
<span onClick={() => navigate('/home?id=100&name=json')}>跳转到首页</span>
import { useSearchParams } from "react-router-dom"
const [params] = useSearchParams()
const id = params.get('id')
// ====params======
path: '/new/:id',// 路由添加占位符
<span onClick={() => navigate('/new/1000')}>跳转到首页</span>
import { useParams } from "react-router-dom"
const params = useParams ()
const id = params.id

7,嵌套路由

// 使用children属性配置嵌套关系
{path: '/',element: <Layout />,children: [{// path: '',index: true,// index设置为true 默认展示这个二级路由element: <Lxx />},]
}
// 使用<Outlet />组件配置二级路由渲染位置
const Layout = () => {return (<div><Link to="page1">page1</Link><Link to="page2">page2</Link>{/*二级路由出口*/}<Outlet /></div>)
}

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

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

相关文章

武汉流星汇聚:亚马逊领跑全球电商,中国卖家迎来前所未有机遇窗口

在数字经济的浪潮中&#xff0c;亚马逊如同一艘巨轮&#xff0c;乘风破浪&#xff0c;引领着全球电商行业的航向。其每月近30亿次的访问量&#xff0c;不仅彰显了其在全球市场的强大影响力&#xff0c;更为中国卖家提供了前所未有的发展机遇。在这个平台上&#xff0c;中国卖家…

Unity URP Shader 修改深度让人物不再被地面遮挡

Unity URP Shader 修改深度让人物不再被地面遮挡 前言项目场景布置代码编写 前言 遇到一个小问题&#xff0c;人物总是被XY平面的地面遮挡&#xff0c;于是在Shader中改一下深度输出&#xff0c;这样地面再也不会挡住人物了。 项目 场景布置 将人物放到XY平面的后面 配置S…

搭建NFS服务器

搭建NFS服务器 记录linux下搭建使用NFS服务器的一般步骤&#xff0c;以ubuntu20.04和centos7.9操作进行记录。 1. 安装 NFS 服务器 运行以下命令安装 NFS 服务器。 # ubuntu下安装 sudo apt-get update sudo apt install nfs-kernel-server # 配置服务 sudo systemctl start …

第 13 章 JavaScript基本包装类型

第 13 章 JavaScript基本包装类型 1.基本包装类型概述 2.Boolean 类型 3.Number 类型 4.String 类型 为了便于操作基本类型值&#xff0c;ECMAScript 提供了 3 个特殊的引用类型&#xff1a;Boolean、Number和 String。这些类型与其他引用类型相似&#xff0c;但同时也具有…

EehCache介绍、应用场景和示例代码

EhCache 概述 EhCache 是一个高性能、轻量级的 Java 缓存库&#xff0c;广泛应用于各种 Java 应用中。EhCache 提供了丰富的功能&#xff0c;包括内存缓存、磁盘缓存、分布式缓存、持久化等&#xff0c;并且可以和 Spring 框架无缝集成。它支持基于内存和磁盘的混合存储&#…

除了按值和引用,方法参数的第三种传递方式

一、官方描述 三种参数传递方式并非我们杜撰出来的&#xff0c;而是写在.NET最核心的规范文档ECMA-355中&#xff08;I.12.4.1.5&#xff09;&#xff0c;原文如下&#xff1a; The CLI supports three kinds of parameter passing, all indicated in metadata as part of the …

WPS宏实现一个表格拆分成多个表格的功能

把首列名称中一样的分别创建该名称时间戳的新表格&#xff0c;比如有个表格存储各个省的信息&#xff0c;江苏的有50行数据&#xff0c;山西的55行数据等等&#xff0c;这个就是把江苏的创建一个新表保存&#xff0c;山西的创建一个新表格保存。里面主要是表格的创建与关闭相关…

Nginx 优化与防盗链

文章目录 Nginx 优化与防盗链一、隐藏版本号1.1 修改配置文件方式1.1.1 操作步骤 1.2 修改源码方式1.2.1 操作步骤 二、修改用户与组2.1 操作步骤 三、缓存时间3.1 操作步骤 四、日志切割4.1 操作步骤 五、连接超时5.1 操作步骤 六、更改进程数6.1 操作步骤 七、配置网页压缩7.…

【论文分享】Graviton: Trusted Execution Environments on GPUs 2018’OSDI

目录 AbstractIntroductioncontributions BackgroundGPUSoftware stackHardwareContext and channel managementCommand submissionProgramming modelInitializationMemory allocationHost-GPU transfersKernel dispatch Sharing Intel SGX Threat ModelOverviewGraviton Archi…

CLIP-VIT-L + Qwen 多模态源码阅读 - 语言模型篇(3)

多模态学习笔记 - 语言模型篇&#xff08;3&#xff09; 参考repo:WatchTower-Liu/VLM-learning; url: VLLM-BASE 吐槽 今天接着昨天的源码继续看&#xff0c;黑神话&#xff1a;悟空正好今天发售&#xff0c;希望广大coder能玩的开心~ 学习心得 前情提要 详情请看多模态…

设计模式笔记01(java版)

文章目录 设计模式概述学习设计模式的必要性设计模式分类创建型模式结构型模式行为型模式 UML类图概述类图的作用类图表示法类的表示方式类与类之间关系的表示方式1&#xff0c;单向关联2&#xff0c;双向关联3&#xff0c;自关联聚合关系组合关系依赖关系继承关系实现关系 软件…

Pytorch 张量运算函数(补充)

mean() mean()函数是进行张量均值计算的函数,常用参数可以设置参数dim来进行对应维度的均值计算 以下是使用一个二维张量进行演示的例子 import numpy as np import torch device torch.device(mps if torch.backends.mps.is_available() else cpu) print(device ) data1 …

C++ | Leetcode C++题解之第367题有效的完全平方数

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isPerfectSquare(int num) {double x0 num;while (true) {double x1 (x0 num / x0) / 2;if (x0 - x1 < 1e-6) {break;}x0 x1;}int x (int) x0;return x * x num;} };

linux系统,ubuntu安装英伟达NVIDIA4090显卡驱动

文章目录 前言下载英伟达NVIDIA官方驱动安装NVIDIA驱动远程安装关闭交互界面设置权限&#xff08;自己确认版本号5&#xff09;安装&#xff08;自己确认版本号5&#xff09;打开交互界面&#xff0c;并重启系统验证是否安装成功 异常处理问题1问题2问题3&#xff08;可能没解决…

Linux 支持程序在运行时动态加载和卸载共享库,动态链接库

动态链接库 Linux支持动态链接库&#xff08;共享库&#xff09;的概念&#xff0c;允许程序在运行时动态加载和卸载共享库。这有助于减小可执行文件的大小&#xff0c;共享代码&#xff0c;提高代码的可重用性。 #include <dlfcn.h> #include <iostream>int mai…

python小游戏——躲避球(可当课设)

游戏简介&#xff1a; 没有美术&#xff0c;画面简洁&#xff08;懒得做&#xff09;。玩家控制小球躲避敌人&#xff08;上下左右&#xff0c;闪避&#xff09;&#xff0c;敌人体积越大速度越慢&#xff0c;随机生成道具球&#xff08;目前只有生命球&#xff09;&#xff0…

day_49

42. 接雨水 class Solution:def trap(self, height: List[int]) -> int:stack []res 0for i in range(len(height)):while(stack and height[i] > height[stack[-1]]):mid stack.pop()if stack:h min(height[i], height[stack[-1]]) - height[mid]w i - stack[-1] …

​14:00面试,14:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Redis内存淘汰

Redis内存淘汰 Redis可以存储多少数据 maxmemory配置&#xff0c;默认是注释掉的。 #maxmemory <bytes>我们可以主动配置maxmemory&#xff0c;maxmemory支持各种单位&#xff0c;默认是字节 maxmemory 1024 maxmemory 1024KB maxmemory 1024MB maxmemory 1024GB当Re…

跟着GPT学习 Kubernetes ,简称 K8s -- Kind(三)

在 Mac M1 上使用 Kind&#xff08;Kubernetes in Docker&#xff09;学习 Kubernetes 是一个非常合适的选择&#xff0c;因为 Kind 可以在本地轻松地创建一个 Kubernetes 集群&#xff0c;适合进行开发、测试和学习。让我们一步一步地从头开始&#xff0c;设置你的环境并逐步学…