【React学习打卡第四天】

ReactRouter

  • 一、概念
  • 二、创建路由开发环境
  • 三、快速开始
  • 四、抽象路由模块
    • 实际开发中的router配置
  • 五、路由导航
    • 1.声明式导航
    • 2.编程式导航
  • 六、路由导航传参
    • 1.searchParams 传参
    • 2.params 传参
  • 七、嵌套路由配置
  • 八、默认二级路由
  • 九、404路由配置
  • 十、俩种路由模式

一、概念

一个路径 path 对应一个组件 component 当我们在浏览器中访问一个 path 的时候,path 对应的组件会在页面中进行渲染

二、创建路由开发环境

  1. 创建项目并安装所有依赖
    npx create-react-app react-router-pro
    npm i
  2. 安装最新的 ReactRouter包
    npm i react-router-dom
  3. 启动项目
    npm run start

三、快速开始

需求:创建一个可以切换登录页和文章页的路由系统

在src/index.js中添加或修改以下内容:
在这里插入图片描述

四、抽象路由模块

实际开发中的router配置

在这里插入图片描述

在这里插入图片描述
/src/router/index.js
在这里插入图片描述
index.js
在这里插入图片描述

五、路由导航

路由系统中的多个路由之间需要进行路由跳转,并且在跳转的同时有可能需要传递参数进行通信

1.声明式导航

声明式导航是指通过在模版中通过 <Link/> 组件描述出要跳转到哪里去,比如后台管理系统的左侧菜单通常使用这种方式进行

在这里插入图片描述
语法说明:通过给组件的to属性指定要跳转到路由path,组件会被渲染为浏览器支持的a链接,如果需要传参直接通过字符串拼接的方式拼接参数即可
登录页跳转到文章页:
在这里插入图片描述

2.编程式导航

编程式导航是指通过 useNavigate 钩子得到导航方法,然后通过调用方法以命令式的形式进行路由跳转,比如想在登录请求完毕之后跳转就可以选择这种方式,更加灵活

在这里插入图片描述
语法说明:通过调用navigate方法传入地址path实现跳转

六、路由导航传参

1.searchParams 传参

在这里插入图片描述
login页面:
在这里插入图片描述
文章article:
在这里插入图片描述

2.params 传参

在这里插入图片描述
login页面
在这里插入图片描述
router->index.js
在这里插入图片描述
acrticle页面:
在这里插入图片描述

七、嵌套路由配置

在一级路由中又内嵌了其他路由,这种关系就叫做嵌套路由,嵌套至一级路由内的路由又称作二级路由

点击左侧展示不同的二级展示页面:
在这里插入图片描述
router/index.js
在这里插入图片描述
layout/index.js
在这里插入图片描述

八、默认二级路由

当访问的是一级路由时,默认的二级路由组件可以得到渲染,只需要在二级路由的位置去掉path设置index属性为true

在这里插入图片描述
这样设置后,访问一级路由时也会展示二级路由的内容

九、404路由配置

场景:当浏览器输入url的路径在整个路由配置中都找不到对应的 path,为了用户体验,可以使用 404 兜底组件进行渲染
实现步骤:

  1. 准备一个NotFound组件
    在这里插入图片描述

  2. 在路由表数组的末尾,以*号作为路由path配置路由
    在这里插入图片描述

十、俩种路由模式

各个主流框架的路由常用的路由模式有俩种,history模式和hash模式, ReactRouter分别由 createBrowerRouter 和createHashRouter 函数负责创建

在这里插入图片描述
router/index.js

在这里插入图片描述
更换成哈希模式:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

使用Python爬虫采集亚马逊新品榜商品数据

一、引言 1.1 亚马逊新品榜的重要性 亚马逊是全球最大的电商平台之一&#xff0c;亚马逊新品榜展示了最新上架并受欢迎的产品。对于电商卖家和市场分析师来说&#xff0c;了解这些新品榜单可以帮助他们捕捉市场趋势&#xff0c;了解消费者喜好&#xff0c;从而优化产品策略和营…

视频怎么加密?常见的四种视频加密方法和软件

视频加密是一种重要的技术手段&#xff0c;用于保护视频内容不被未经授权的用户获取、复制、修改或传播。在加密过程中&#xff0c;安企神软件作为一种专业的加密工具&#xff0c;可以发挥重要作用。 以下将详细介绍如何使用安企神软件对视频进行加密&#xff0c;并探讨视频加密…

block_size设置过大错误分析(查看CUDA设备线程块大小)

block_size设置过大错误分析&#xff08;查看CUDA设备线程块大小&#xff09; 1 问题描述2 问题分析3 解决方法4 调试和验证5 查看设备线程块大小 1 问题描述 本人作为CUDA编程初学者&#xff0c;在学习编写使用CUDA计算矩阵相乘代码时发现&#xff0c;如果我的 block_size &g…

可能是最好的工具网站

前些苏音在刷视频&#xff0c;发现了一堆好用的宝藏网站&#xff0c;这就赶快分享给大家。 工具网站 这个网站类似于网址导航&#xff0c;集合了包括工具类、资源类、软件类、AI类的合集 并且站长表示励志做体验感最好的工具网&#xff0c;聚焦最快解决用户的需求 首先就是办…

数据库安全综合治理方案(可编辑54页PPT)

引言&#xff1a;数据库安全综合治理方案是一个系统性的工作&#xff0c;需要从多个方面入手&#xff0c;综合运用各种技术和管理手段&#xff0c;确保数据库系统的安全稳定运行。 方案介绍&#xff1a; 数据库安全综合治理方案是一个综合性的策略&#xff0c;旨在确保数据库系…

【8月EI会议推荐】第四届区块链技术与信息安全国际会议

一、会议信息 大会官网&#xff1a;http://www.bctis.nhttp://www.icbdsme.org/ 官方邮箱&#xff1a;icbctis126.com 组委会联系人&#xff1a;杨老师 19911536763 支持单位&#xff1a;中原工学院、西安工程大学、齐鲁工业大学&#xff08;山东省科学院&#xff09;、澳门…

一天搞定React(3)——Hoots组件【已完结】

Hello&#xff01;大家好&#xff0c;今天带来的是React前端JS库的学习&#xff0c;课程来自黑马的往期课程&#xff0c;具体连接地址我也没有找到&#xff0c;大家可以广搜巡查一下&#xff0c;但是总体来说&#xff0c;这套课程教学质量非常高&#xff0c;每个知识点都有一个…

数据结构经典测试题4

1. #include <stdio.h> int main() { char *str[3] {"stra", "strb", "strc"}; char *p str[0]; int i 0; while(i < 3) { printf("%s ",p); i; } return 0; }上述代码运行结果是什么&#xff1f; A: stra strb strc B: s…

Rocky/Centos Linux安装Code-server,并注册成服务自启动

文章目录 Rocky/Centos Linux安装Code-server&#xff0c;并注册成服务自启动介绍安装1. 下载压缩包2. 解压缩3. 执行启动命令4. 浏览器访问5. 开机自启动 Rocky/Centos Linux安装Code-server&#xff0c;并注册成服务自启动 介绍 VS Code Server是微软推出的VSCode风格的Web…

谷歌AI拿下IMO奥数银牌!6道题轻松解出4道~

本周四&#xff0c;谷歌DeepMind团队宣布了一项令人瞩目的成就&#xff1a;&#xff1a;用 AI 做出了今年国际数学奥林匹克竞赛 IMO 的真题&#xff0c;并且距拿金牌仅一步之遥。这一成绩不仅标志着人工智能在数学推理领域的重大突破&#xff0c;也引发了全球范围内的广泛关注和…

私域电商丨软件系统开发中,一定要避开的几个坑,看懂少很多弯路

文丨微三云胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 大家好&#xff0c;我是软件开发胡佳东&#xff0c;每天为大家分享互联网资讯干货&#xff01; 在数字化时代的今天&#xff0c;软件开发是已经成为推动科技进步和商业发展的重要…

vmware虚拟机安装linux没有IP地址

直接设置固定IP 1、在虚拟机菜单栏选择编辑&#xff0c;然后点击虚拟网络编辑器 2、选择Vmnet8 Net网络连接方式&#xff0c;随意设置子网IP 3、点击NAT设置页面&#xff0c;查看子网掩码和网关&#xff0c;修改静态IP会用到 4、打开电脑控制面板–网络和Internet–网络连…

面试常考Linux指令

文件权限 操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制&#xff0c;在 Linux 中权限一般分为读(readable)、写(writable)和执行(executable)&#xff0c;分为三组。分别对应文件的属主(owner)&#xff0c;属组(group)和其他用…

前端知识笔记之HTML

1.标签元素与属性&#xff0c;注意事项 2.多级标签排序List&#xff0c;无顺序&#xff08;Ul&#xff09;和有顺序(Ol) 3.HTML页面结构 4.页面跳转&#xff0c;注意#是统一页面的跳转 5.图片、视频、音频 标签 6.前端表单与后端方法 数据接收的demo 7.常见表单项 8.注意日期类…

Python爬虫知识体系-----Urllib库的使用

数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新&#xff1a;https://blog.csdn.net/grd_java/article/details/140574349 文章目录 1. 基本使用2. 请求对象的定制3. 编解码1. get请求方式&#xff1a;urllib.parse.quote&#xff08;&#xff09;2. ur…

Linux 安装 GDB (无Root 权限)

引入 在Linux系统中&#xff0c;如果你需要在集群或者远程操作没有root权限的机子&#xff0c;安装GDB&#xff08;GNU调试器&#xff09;可能会有些限制&#xff0c;因为通常安装新软件或更新系统文件需要管理员权限。下面我们介绍可以在没有root权限的情况下安装GDB&#xf…

谷粒商城-性能压测

1.压力测试 在项目上线前对其进行压力测试(以每个微服务为单元) 目的:找到系统能承载的最大负荷,找到其他测试方法更难发现的错误(两种类型:内存泄漏,并发与同步). 1.性能指标 响应时间(Response Time (RT)): 响应时间 指用户从客户端发起一个请求开始,到客户端接收到从服务…

2023IMO预选题几何第5题

在锐角 △ A B C \triangle ABC △ABC 中, ω ω ω 是外接圆, O O O 是外心. D D D, E E E 分别是 ω ω ω 上不同于 B B B, C C C 的点, 满足 B D BD BD ⊥ A C AC AC, C E CE CE ⊥ A B AB AB. 设直线 C O CO CO, A B AB AB 交于点 X X X, 直线 B O BO BO,…

怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由 怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由 在当今数字化的世界中&#xff0c;网站和应用程…