react中配置路由
一个路由就是一个通道,页面之间的跳转其实就是路由的切换,所以每个应用的路由配置是必须的,浅谈react中怎么配置路由
首先你要在src文件夹下新建一个router的文件下,在router文件下新建一个index.js(我用的是TS,所以是index.tsx)

然后在index.jsx里这样去配置
1 import React, { ReactNode, lazy } from "react";
2 const Test = lazy(() => import("../pages/Test"))
3 const Detail = lazy(() => import("../pages/Detail"))
4 //Test 和 Detail分别对应你的组件
5 export interface IRoute {
6 exact?: boolean
7 path: string
8 title: string
9 icon?: ReactNode
10 component?: ReactNode
11 children?: IRoute[]
12 }
13
14 export const routes: IRoute[] = [
15 {
16 path: "/test",
17 title: "测试一",
18 component: <Test />
19 },
20 {
21 path: "/detail",
22 title: "详情",
23 component: <Detail />
24 }
25 ]
然后再在scr文件下新建一个components文件下,在此文件夹下新建一个View.jsx的文件,里面这样配置
1 import React, { Component, Suspense } from 'react'
2 import { HashRouter as Router, Switch, Route } from 'react-router-dom'
3 import { routes } from '../router'
4 export default class View extends Component {
5 render() {
6 return (
7 <>
8 <Suspense fallback={<>loading ...</>}>
9 <Router>
10 {routes.map(r => (<Switch key={r.path}>
11 <Route path={r.path}>
12 {r.component}
13 </Route>
14 </Switch>))}
15 </Router>
16 </Suspense>
17
18 </>
19 )
20 }
21 }
然后你就可以试着改变url地址栏来改变页面了,注意;hash模式下,你的url前必须加#/
用history来跳转页面时必须做好配置,部分代码如下:
1 import { Link, withRouter, RouteComponentProps } from 'react-router-dom';
2
3
4 class Test extends Component{
5
6
7 }
8
9 export default withRouter(Test)
这样才可以使用this.props.history.push等等api
react中配置路由的更多相关文章
- react中的路由模块化
在vue中,可以将路由单独写在一个配置文件中,便于整理维护,而在前面总结整理的react中,都是直接将路由配置放在需要使用的地方,少数的时候话可以接受,但是当项目做大,这种方式就不再被推荐了,我们再r ...
- 【已解决】React中配置Sass引入.scss文件无效
React中配置Sass引入.scss文件无效 在react中使用sass时,引入.scss文件失效 尝试很多方法没法解决,最终找到解决方法,希望能帮助正在坑里挣扎的筒子~ 在node_modules ...
- React中配置Sass引入.scss文件无效
React中配置Sass引入.scss文件无效 在react中使用sass时,引入.scss文件失效尝试很多方法没法解决,最终找到解决方法,希望能帮助正在坑里挣扎的筒子~ 在node_modules文 ...
- React中的路由系统
React中的路由系统 提起路由,首先想到的就是 ASPNET MVC 里面的路由系统--通过事先定义一组路由规则,程序运行时就能自动根据我们输入的URL来返回相对应的页面.前端中的路由与之类似,前端 ...
- react中的路由配置踩坑记
react 路由配置中,如果根路由(/)匹配一个组件,另一个路由(/list)在进行匹配的时候也会匹配到根路由(/),即在 /list 页面展示的时候 / 页面总是展示在上方. 此时如果想进行严格匹配 ...
- React 版本16.9.0 中配置路由以及路由传参
我的脚手架版本如下: "dependencies": { "antd": "^3.21.4", "jquery": &q ...
- react 中的路由 Link 和Route和NavLink
route是配置,link是使用 https://blog.csdn.net/chern1992/article/details/77186118(copy) 嵌套路由一般使用Route,类似于vue ...
- 在react中配置less
在创建项目之后执行 $ yarn eject 抽离配置文件 会多出config和script文件夹 接下来安装less yarn add less less-loader 或者 npm install ...
- react中,路由的使用。import {BrowserRouter,Switch,Route} from "react-router-dom";
import React from "react"; import ReactDom from "react-dom"; import {BrowserR ...
随机推荐
- 【C primer plus】初始化链表函数的错误
C primer plus第六版 的一处错误 第五百页17.3.4 实现接口的程序清单17.5中的初始化链表函数有误 #源代码 void InitializeList(List * plist) { ...
- idea环境下SpringBoot Web应用引入JSP
1. 环境 开发环境:idea2019.3 jkd版本:1.8 springboot版本:2.6.2 2. 引入JSP的步骤 2.1 新建工程,引入依赖 这里只是解析jsp,因此只需要引入spring ...
- Ubuntu 桌面版使用总结
最近拿出了大学时买的性(游)能(戏)本(机),其实从直观来看,硬件基础还是不错的,但是跑 WIN10, 清了各种广告,关了各种无效进城之后,用起来仍然还是很不爽.可能是已经用惯 mac 了吧,mac给 ...
- IP第一次实验:静态综合
- 问题记录——BigDecimal保留两位小数及格式化成百分比
1.函数总结 BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOW ...
- 《手把手教你》系列技巧篇(六十)-java+ selenium自动化测试 - 截图三剑客 -中篇(详细教程)
1.简介 前面我们介绍了Selenium中TakeScreenshot类来截图,得到的图片是浏览器窗口内的截图.有时候,只截浏览器窗口内的图是不够的,而且TakeScreenshot截图只针对浏览器的 ...
- 【机器学习基础】无监督学习(1)——PCA
前面对半监督学习部分作了简单的介绍,这里开始了解有关无监督学习的部分,无监督学习内容稍微较多,本节主要介绍无监督学习中的PCA降维的基本原理和实现. PCA 0.无监督学习简介 相较于有监督学习和半监 ...
- gin初识
Gin 是一个用 Go (Golang) 编写的 web 框架. 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍. 如果你是性能和 ...
- [JavaWeb]Shiro漏洞集合——代码审计
Shiro漏洞集合 Shiro其实就是一组Filter,他会进行验证,鉴权,会话 Management,再把请求转到web过滤器.所以最好先去对Shiro有个整体性的了解. 复现环境:https:// ...
- elasticsearch查询之大数据集分页查询
一. 要解决的问题 search命中的记录特别多,使用from+size分页,直接触发了elasticsearch的max_result_window的最大值: { "error" ...