React(coderwhy)- 07(路由)

news2024/11/23 21:18:45

认识React-Router

认识前端路由

路由其实是网络工程中的一个术语:
         在 架构一个网络 时,非常重要的两个设备就是 路由器和交换机
         当然,目前在我们生活中 路由器 也是越来越被大家所熟知,因为我们生活中都会用到 路由器
         事实上, 路由器 主要维护的是一个 映射表
         映射表 会决定数据的流向;
路由的概念在软件工程中出现,最早是在后端路由中实现的,原因是web的发展主要经历了这样一些阶段:
         后端路由阶段;
         前后端分离阶段;
         单页面富应用(SPA);

后端路由阶段

早期的网站开发整个HTML页面是由 服务器来渲染 的.
         服务器直接 生产渲染好对应的HTML页面 , 返回给客户端进行展示.
但是, 一个网站, 这么多页面服务器如何处理呢?
         一个页面有 自己对应的网址 , 也就是 URL
         URL会发送到服务器, 服务器会通过 正则对该URL进行匹配 , 并且最后交给 一个Controller进行处理
         Controller进行各种处理, 最终生成 HTML或者数据 , 返回给前端.
上面的这种操作, 就是 后端路由
         当我们页面中需要 请求不同的 路径 内容 时, 交给服务器来进行处理, 服务器渲染好 整个页面 , 并且将 页面返回给客户端 .
         这种情况下渲染好的页面, 不需要单独加载任何的js和css , 可以直接 交给浏览器展示 , 这样也 有利于SEO的优化 .
后端路由的缺点:
         一种情况是 整个页面的模块由后端人员来编写和维护 的;
         另一种情况是 前端开发人员如果要开发页面, 需要通过PHP和Java等语言来编写页面代码
         而且通常情况下 HTML代码和数据以及对应的逻辑会混在一起 , 编写和维护都是非常糟糕的事情;

前后端分离阶段

前端渲染的理解:
         每次请求涉及到的静态资源都会从 静态资源服务器获取 ,这些资源 包括HTML+CSS+JS ,然后 在前端对这些请求回来的资源进行渲染
         需要注意的是,客户端的每一次请求,都会 从静态资源服务器请求文件
         同时可以看到,和之前的后端路由不同,这时后端只是 负责提供API 了;
前后端分离阶段:
         随着Ajax的出现, 有了 前后端分离的开发模式
         后端只提供API来返回数据,前端 通过Ajax获取数据 ,并且可以 通过JavaScript将数据渲染到页面 中;
         这样做最大的优点就是 前后端责任的清晰 后端专注于数据上 前端专注于交互和可视化 上;
         并且当 移动端(iOS/Android) 出现后,后端不需要进行任何处理,依然使用之前的一套API即可;
         目前比较少的网站采用这种模式开发;
单页面富应用阶段:
         其实SPA最主要的特点就是 在前后端分离的基础 上加了一层 前端路由 .
         也就是前端来维护一套 路由规则 .
前端路由的核心是什么呢?改变URL,但是页面不进行整体的刷新。

URL的hash

 


HTML5的History


认识react-router 

 

Router的基本使用

Router的基本使用

react-router最主要的API是给我们提供的一些组件:
BrowserRouter或HashRouter
         Router中包含了对路径改变的监听,并且会将相应的路径传递给子组件;
         BrowserRouter 使用history模式;
         HashRouter 使用hash模式;

路由映射配置 


路由配置和跳转 


NavLink的使用 


Navigate导航 


Not Found页面配置 

 

Router的路由嵌套

路由的嵌套

 

Router的代码跳转

手动路由的跳转

 

Router的参数传递

路由参数传递

 

Router的配置方式

路由的配置文件

 

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

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

相关文章

红黑树:比AVL抽象、自由的、更广泛的近似平衡树

RBT与AVL树的比较 AVL:高度要求差不超过1红黑树:RBT要求最长路径不超过短路径的2倍,不需要像AVL一样太平衡,稍微自由,所以旋转较少。 AVL和RBT树性能比较: 插入同样的数据,AVL树旋转更多&…

本地生活配送行业黑马,带你一键读懂闪飞侠

电商的黄金十年已经过去,本地生活的黄金市场才刚刚开启,本地生活市场的增长对同城配送的影响得有多大?2020年的新冠疫情,爆发了同城即时配送的投资新机遇!即时配送用户已超5亿。而随着即时配送行业的广泛应用&#xff…

【 Vue3 + Vite + setup语法糖 + Pinia + VueRouter + Element Plus 第三篇】(持续更新中)

在第二篇我们主要学习了路径别名,配置.env环境变量,封装axios请求,以及使用api获取数据后渲染 Element Plus表格 本期需要掌握的知识如下: 封装列表模糊查询组件实现新增 编辑 删除 模糊查询 重置 功能实现表单校验功能实现组件间传值 下期…

Compose跨平台第一弹:体验Compose for Desktop

前言 Compose是Android官方提供的声明式UI开发框架,而Compose Multiplatform是由JetBrains 维护的,对于Android开发来说,个人认为学习Jetpack Compose是必须的,因为它会成为Android主流的开发模式,而compose-jb作为一…

TikTok三大流行趋势 钛动带你看懂TikTok

武汉瑞卡迪电子商务有限公司:近日,TikTok for Business发布了《Whats Next 2023 TikTok 全球流行趋势报告》,就2023年TikTok三大趋势主题进行了介绍。 钛动科技作为TikTok官方授权代理商,是TikTok生态服务最齐全的出海服务商,凭借出色的技术与服务能力,钛动斩获了T…

论 G1 收集器的架构和如何做到回收时间用户设定

目录G1 概念JVM的内存分代假设让用户设置应用的暂停时间G1 概念 G1其实是Garbage First的意思,它不是垃圾优先的意思,而是优先处理那些垃圾多的内存块的意思。 在大的理念上,它还是遵循JVM的内存分代假设。 JVM的内存分代假设 JVM的内存分代…

https如何加密解密?

背景 我们知道,https,在网络传输中,加密。具体来说是数据加密。//客户端和服务器,写数据的时候,都会加密。即1.客户端——》服务器 2.服务器——》客户端。 如何加密 解密? 加密解密 想要加密和解密&am…

【Mysql篇】数据库事务

目录 数据库事务数据库事务介绍 JDBC事务处理 事务的ACID属性 数据库的并发问题 数据库提供的4种事务隔离级别: 在MySql中设置隔离级别 数据库事务数据库事务介绍 事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。 事务处理(…

Day1. Spring

1 课程描述IoC基础容器,主要涉及Bean对象的管理。AOP面向切面编程,主要涉及切面配置,声明式事务控制Spring整合Web环境。Web层解决方案-SpringMVC.1.1 IoC、DI和AOP思想的提出由于传统的JavaWeb出现的问题:问题1:层与层…

【问题记录】Process finished with exit code -1073740791 (0xC0000409) 注:LSTM股票预测案例中

目录 1. 问题来源2. 问题解决1. 问题来源 在跑一段 LSTM&神经网络 股票预测的代码时,遇到了下述报错,报错提示为: Process finished with exit code -1073740791 (0xC0000409) 报错截图为: 下面是整个报错的内容,这里我也截取下来了: H:\Python学习专用\深度学习\LS…

ECMAScript基础入门

JavaScript(浏览器端)ECMAScript(语法API)DOMBOM es6开始let代替var声明变量(初始化后可重新赋值),而const声明常量(初始化后不可重新赋值,否则会报错) con…

Java调用百度OCR接口实现文字识别

博主在项目开发中需要完成一个文字识别功能,由于之前有过使用百度云平台接口进行身份证识别的经历,因此这次也是自然而然的再次选择了百度AI平台,首先需要开通百度通用文字识别功能。 然后我们需要创建一个应用: 然后我们就可以…

TensorFlow 基础(一)张量

文章目录BasicsAbout shapesIndexingSingle-axis indexingMulti-axis indexingManipulating ShapesMore on dtypesReferencesimport tensorflow as tf import numpy as npBasics 张量是具有统一类型(dtype)的多维数组。它和 NumPy 中的 np.arrays 是非常…

C进阶_C语言_函数与指针_C语言指针进阶

上一篇博客http://t.csdn.cn/GYCiM 我们了解了指针相关知识,今天来了解函数和指针的关系。 目录 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 qsort 冒泡排序模拟实现qsort 函数指针 我们知道,数组指针是指向数组的指针。 int arr[…

Ribbon负载均衡服务调用

文章目录一. 什么是Ribbon二. Ribbon负载均衡三. Ribbon负载均衡策略四. Ribbon饥饿加载一. 什么是Ribbon PS: 本篇文章文作者学习笔记,技术参考价值不大。 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。 简单的说&#x…

Allegro174版本新功能介绍之改变报表字体大小

Allegro174版本新功能介绍之改变报表字体大小 Allegro在升级到174的时候,默认show element的字体是非常小的,类似下图,辨认起来非常困难 但是174是支持把字体调整的大一些的,具体操作如下 选择Setup选择User Preferences

SpringBoot整合java诊断工具Arthas

一、Arthas官方文档https://arthas.aliyun.com/doc/二、springBoot整合方式1、pom文件引入<dependency><groupId>com.taobao.arthas</groupId><artifactId>arthas-spring-boot-starter</artifactId><version>3.6.7</version> </d…

机器学习:机器学习常见的算法分类和算法优缺点汇总

机器学习实战教程(13篇)_M_Q_T的博客-CSDN博客这些网址非常适合想学习机器学习&#xff0c;却苦于没有项目&#xff08;尤其缺少数据&#xff09;的人。无意中看到&#xff0c;给自己做一个记录。目录大类&#xff1a;学习方式监督式学习&#xff1a;非监督式学习&#xff1a;半…

ES6 课程概述③

文章目录5-1. 新增的对象字面量语法5-2. Object 的新增 API5-4 类&#xff1a;构造函数的语法糖传统的构造函数的问题类的特点5-5. 类的其他书写方式5-1. 新增的对象字面量语法 成员速写 如果对象字面量初始化时&#xff0c;成员的名称来自于一个变量&#xff0c;并且和变量的…

2023/01/05 java面试题每日10问

1.What is Java? Java is object-oriented, platform-independent, Multithreaded, and portable programming language.it provides its own JRE and API. 2.What is the difference between JDK, JRE, and JVM? JVM Java Virtual Machine provides the runtime environm…