一个路由就是一个通道,页面之间的跳转其实就是路由的切换,所以每个应用的路由配置是必须的,浅谈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. unity3d录音

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class record : ...

  2. Cesium入门1 - Cesium介绍

    Cesium入门1 - Cesium介绍 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium简介 Ce ...

  3. IoC容器-Bean管理XML方式(注入外部bean)

    注入属性-外部bean (1)创建两个类service类和dao类 (2)在service调用dao里面的方法 (3)在spring配置文件中进行配置

  4. 【webpack4.0】---base.config.js基本配置(五)

    一.创建项目初始化 1.初始化项目npm init -y 2.创建 src (用来存放开发环境的代码)文件夹.  config (用来存放webpack的配置项)文件夹 3.安装webpack  We ...

  5. linux正则转换csv文件

  6. 009 Linux 文件大小统计与排序( du于df和sort)

    @ 目录 01 du 与 df 作用与区别? du(disk usage) df(disk free) 02 du 常用命令示例 03 sort 常用参数 04 常用组合 du + sort + he ...

  7. 微服务架构 | 7.2 构建使用 JWT 令牌存储的 OAuth2 安全认证

    目录 前言 1. JWT 令牌存储基础知识 1.1 JSON Web Token 2. 构建使用 JWT 令牌存储的 OAuth2 服务器 2.1 引入 pom.xml 依赖文件 2.2 创建 JWT ...

  8. elasticsearch查询之大数据集分页查询

    一. 要解决的问题 search命中的记录特别多,使用from+size分页,直接触发了elasticsearch的max_result_window的最大值: { "error" ...

  9. UITableViewCell结构

  10. 微信小程序开发提升效率

    http://www.ifanr.com/minapp/790017 微信小程序的 API 实现需要兼顾方方面面,所以仍然使用 callback 写法. 众所周知,Callback-Hell(回调地狱 ...