一个路由就是一个通道,页面之间的跳转其实就是路由的切换,所以每个应用的路由配置是必须的,浅谈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中配置路由的更多相关文章

  1. react中的路由模块化

    在vue中,可以将路由单独写在一个配置文件中,便于整理维护,而在前面总结整理的react中,都是直接将路由配置放在需要使用的地方,少数的时候话可以接受,但是当项目做大,这种方式就不再被推荐了,我们再r ...

  2. 【已解决】React中配置Sass引入.scss文件无效

    React中配置Sass引入.scss文件无效 在react中使用sass时,引入.scss文件失效 尝试很多方法没法解决,最终找到解决方法,希望能帮助正在坑里挣扎的筒子~ 在node_modules ...

  3. React中配置Sass引入.scss文件无效

    React中配置Sass引入.scss文件无效 在react中使用sass时,引入.scss文件失效尝试很多方法没法解决,最终找到解决方法,希望能帮助正在坑里挣扎的筒子~ 在node_modules文 ...

  4. React中的路由系统

    React中的路由系统 提起路由,首先想到的就是 ASPNET MVC 里面的路由系统--通过事先定义一组路由规则,程序运行时就能自动根据我们输入的URL来返回相对应的页面.前端中的路由与之类似,前端 ...

  5. react中的路由配置踩坑记

    react 路由配置中,如果根路由(/)匹配一个组件,另一个路由(/list)在进行匹配的时候也会匹配到根路由(/),即在 /list 页面展示的时候 / 页面总是展示在上方. 此时如果想进行严格匹配 ...

  6. React 版本16.9.0 中配置路由以及路由传参

    我的脚手架版本如下: "dependencies": { "antd": "^3.21.4", "jquery": &q ...

  7. react 中的路由 Link 和Route和NavLink

    route是配置,link是使用 https://blog.csdn.net/chern1992/article/details/77186118(copy) 嵌套路由一般使用Route,类似于vue ...

  8. 在react中配置less

    在创建项目之后执行 $ yarn eject 抽离配置文件 会多出config和script文件夹 接下来安装less yarn add less less-loader 或者 npm install ...

  9. react中,路由的使用。import {BrowserRouter,Switch,Route} from "react-router-dom";

      import React from "react"; import ReactDom  from "react-dom"; import {BrowserR ...

随机推荐

  1. 学习javaScript必知必会(3)~数组(数组创建,for...in遍历,辅助函数,高级函数filter、map、reduce)

    一.数组: 1.js是弱语言,js中的数组定义时:不用指定数据类型.不用功指定数组长度:数组可以存储任何数据类型的数据 2.数组定义的[ ] 的实质: [] = new Array(); {} = n ...

  2. 小程序onShareAppMessage有点迷

    小程序遇到的问题 起因 目前项目需求是分享时携带参数去进行裂变,但是在查看微信文档后发现有onShareAppMessage这个页面处理事件可以使用.事件可以使用return一个Object,用于自定 ...

  3. [JavaWeb]反序列化分析(二)--CommonCollections1

    反序列化分析(二)--CommonCollections1 链子分析 首先新建一个TransformedMap,其中二三参数为可控,后续要用到 当TransformedMap执行put方法时,会分别执 ...

  4. windows+goland+gometalinter进行本地代码检查(高圈复杂度、重复代码等)

    1.下载gometalinter release地址为:https://github.com/alecthomas/gometalinter/releases/tag/v3.0.0 下载windows ...

  5. python组合

    目录 一:组合基础使用 二:组合 一:组合基础使用 组合: 就是一个对象拥有一个属性,该属性的值是另一个对象 继承:满足什么是什么的关系,is-a的关系 继承是一把双刃剑,单继承能实现就尽量少的继承, ...

  6. 业务驱动的全景监控体系在阿里的应用 | 阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

  7. django入门 01 创建项目

    安装django库 pip install django 创建--by 终端 django-admin startproject myproject 通过命令创建的django项目,默认不含templ ...

  8. 利用 Python 进行数据分析(Python 数据分析)· 第 2 版

    译者:SeanCheney 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 机器学习交流群 629470233 ApacheCN 学习资源 Sklearn 与 ...

  9. 在终端或idea编译工具中的terminal中运行mvn install 失败

    原因是因为操作系统的差异导致,把所有参数加上引号即可. 如下所示: mvn install:install-file "-Dfile=cobra.jar" "-Dgrou ...

  10. JOISC 2017

    Day1 「JOISC 2017 Day 1」开荒者 首先观察部分分发现分档很多,于是考虑一步步思考上来. 首先有一点关键观察(一): 风吹的顺序是无所谓的,令分别往东.西.南.北吹了 \(r, l, ...