React后台管理系统06 路由
在src目录下新建2views文件夹,用来存放组件,这里我们新建2个路由组件Home About,如下所示:

创建好这两个路由组件之后,在src目录里面我们新建一个router路由文件夹,然后命名一个index.tsx的文件,里面写上如下:

这里我们需要修改main.tsx,这里就不使用App了,这里我们使用的是Router来进行渲染=>修改代码如下:

修改后界面展示如下:

我们可以在这里加上Link标签,使用react-router-dom自带的标签来进行跳转:代码如下

界面展示如下:这样就可以切换了

但是这样还是有一个问题就是如果浏览器只带有“/”的形式去访问的话,那么会丢失

所以需要在路由的index.tsx中加上路由的一个标签,来进行重新定向到Home组件:添加代码如下:

重定向之后的效果如下:

这是第一种路由方式。
接下来再看第二种路由的方式:
首先我们先把router中的index.tsx来复制一份,另外一份的代码如下:

但是只改了这个还不够,还需要在main.tsx中进行引入BrowserRouter组件来包裹着App组件,这种方式BrowserRouer是写在main.tsx里面的,而第一种方式是直接写在router中的index.tsx中的

在App.tsx中进行改写

展示效果如下:

可以看到也是可以实现的。
我们需要对代码进行优化,因为现在的方式是在路由里面一开始就进行引入,这样不太好,需要做成懒加载的方式:修改index.tsx路由文件:

启动后点击About发现控制台报错了

具体的原因是:
A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.
英文翻译一下:

意思就是用法不对,需要使用suspend进行包裹住,于是需要修改我们懒加载的代码:

引入React本身,然后使用Suspense进行包裹住,里面有一个回调函数,我们来看看效果

可以发现没有报错了。但是这样的代码不够优雅:很多重复的内容,我们使用ts定义一个方法来进行代码优化:

React后台管理系统06 路由的更多相关文章
- 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件
实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...
- react后台管理系统路由方案及react-router原理解析
最近做了一个后台管理系统主体框架是基于React进行开发的,因此系统的路由管理,选用了react-router(4.3.1)插件进行路由页面的管理配置. 实现原理剖析 1.hash的方式 ...
- 【共享单车】—— React后台管理系统开发手记:主页面架构设计
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- VUE3后台管理系统【路由鉴权】
前言: 在"VUE3后台管理系统[模板构建]"文章中,详细的介绍了我使用vue3.0和vite2.0构建的后台管理系统,虽然只是简单的一个后台管理系统,其中涉及的技术基本都覆盖了, ...
- 【共享单车】—— React后台管理系统开发手记:Router 4.0路由实战演练
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- 《React后台管理系统实战 :三》header组件:页面排版、天气请求接口及页面调用、时间格式化及使用定时器、退出函数
一.布局及排版 1.布局src/pages/admin/header/index.jsx import React,{Component} from 'react' import './header. ...
- 【共享单车】—— React后台管理系统开发手记:城市管理和订单管理
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- 《React后台管理系统实战 :二》antd左导航:cmd批量创建子/目录、用antd进行页面布局、分离左导航为单独组件、子路由、动态写左导航、css样式相对陷阱
一.admin页面布局及路由创建 0)cmd批量创建目录及子目录 //创建各个目录,及charts和子目录bar md home category product role user charts\b ...
- 《React后台管理系统实战 零》:基础笔记
day01 1. 项目开发准备 1). 描述项目 2). 技术选型 3). API接口/接口文档/测试接口 2. 启动项目开发 1). 使用react脚手架创建项目 2). 开发环境运行: npm s ...
- 【共享单车】—— React后台管理系统开发手记:AntD Table高级表格
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
随机推荐
- MySQL 8.0:无锁可扩展的 WAL 设计
这篇文章整理自MySQL官方文档,介绍了8.0在预写式日志上实现上的修改,观点总结如下: 在8.0以前,为了保证flush list的顺序,redo log buffer写入过程需要加锁,无法实现并行 ...
- 浏览器层面优化前端性能(1):Chrom组件与进程/线程模型分析
现阶段的浏览器运行在一个单用户,多合作,多任务的操作系统中.一个糟糕的网页同样可以让一个现代的浏览器崩溃.其原因可能是一个插件出现bug,最终的结果是整个浏览器以及其他正在运行的标签被销毁. 现代操作 ...
- 【Diary】CSP-S2 2021 游记 & NOIP 备赛发疯日记
Day 0 两个极端的回跳. .....不行啊. 我快输不起了........... ------------------------------- 早上被生物钟强行唤醒,逼自己懒床到6:40. 弹琴 ...
- oracle数据对比--用户,索引,分区,dblink,同义词,视图
问题描述:需要对比用户数据一般在数据库迁移之后,需要对比一下两个库之间的差距,如果登上去一条命令的执行,去统计,就会比较麻烦,这里整理了一些脚本可用.通过创建dblink的方式快速查询,也可以整合到一 ...
- FBV和CBV的区别(源码分析)
FBV和CBV源码分析 FBV直接调用user方法执行业务代码 CBV相当于在FBV上面封装了一层 from django.contrib import admin from django.urls ...
- Go语言实现文件服务器
主调函数,设置路由表 package main import ( "fmt" "net/http" "store/handler" ) fu ...
- django使用多个数据库实现
一.说明: 在开发 Django 项目的时候,很多时候都是使用一个数据库,即 settings 中只有 default 数据库,但是有一些项目确实也需要使用多个数据库,这样的项目,在数据库配置和使用的 ...
- 如何使用jsDelivr+Github 实现免费CDN加速?
目录 序言 1 cdn简介 2 cdn请求分发原理 3 jsDelivr简介 4.jsDelivr 的简单使用 5 jsDelivr + Github 的具体实现 5.1 新建Github仓库 5.2 ...
- 2022-02-19:安装栅栏。 在一个二维的花园中,有一些用 (x, y) 坐标表示的树。由于安装费用十分昂贵,你的任务是先用最短的绳子围起所有的树。只有当所有的树都被绳子包围时,花园才能围好栅栏。
2022-02-19:安装栅栏. 在一个二维的花园中,有一些用 (x, y) 坐标表示的树.由于安装费用十分昂贵,你的任务是先用最短的绳子围起所有的树.只有当所有的树都被绳子包围时,花园才能围好栅栏. ...
- SqliLabs 第六关 报错注入!!!
点开网址,首先看到一个页面,首先尝试闭合字符 id=1 报错 id=1' 报错 id=1"成功 然后开始爆字段?id=1" order by 3 --+ 发现有三个字段然后查询显示 ...