安装路由

打开cmd
在项目文件夹安装:npm i react-router-dom@5.0 -S(指定5.0版本)

导入路由的相关组件

在app.js中添加路由,导入

import {HashRouter as Router,    //HashRouter哈希路由 as起别名 router路由Route,                   //Route 存放路由的容器NavLink,                 //navlink 导航链接Redirect,                // Redirect 重定向Switch,                  // Switch一次匹配一个页面
} from "react-router-dom";

创建两个路由页面

首页页面:

//创建首页
function Home(){return (<div><h1>首页内容</h1>
</div>);
}
export default Home;

分支路由页面:

function About(){return (<div><h1>关于页面内容</h1>
</div>);
}
export default About;

配置路由

在需要的页面配置:

import {HashRouter as Router,Route,NavLink
} from "react-router-dom";
import Home from "./Home";
import About "./About";
function App() {return (<Router><div className="nav"><NavLink to="/" exact>首页</NavLink>|<NavLink to="/about">关于</NavLink></div><div className="views"><Route path="/" component={Home} exact></Route><Route path="/about" component={About}></Route></div></Router>);
}export default App;

路由传参

//导入路由相关的组件
//HashRouter哈希路由 as起别名 router路由
//router 存放路由的容器
//Navlink 导航链接
import{HashRouter as Router,Route,NavLink,Redirect,Switch} from 'react-router-dom'
function App(){return (
<Router>{/*导航部分*/}<div className='nav'><NavLink to="/" exact>首页</NavLink> |<NavLink to="/about">关于页面</NavLink> |<NavLink to="/details/abc">abc详情</NavLink> |<NavLink to="/details/123">123详情</NavLink> |</div><div className='views'><Route path='/' component={Home} exact></Route><Route path='/about' component={About}></Route><Route path='/details/:id' component={Details}></Route></div>
</Router>);
}
export default App;
//创建详情页
function Details({match,location}){return (<div><h1>详情内容</h1><p>参数:{match.params.id}</p><p>match:{JSON.stringify(match)}</p><p>location:{JSON.stringify(location)}</p></div>);

子路由

父路由是普通路由,在父组件中配置子路由
在子路由中配置重定向Redirect,可控制子路由默认显示页面

function Admin() {return (<div><h1>Admin页面</h1><p><NavLink to="/admin/dash">概述</NavLink><NavLink to="/admin/orderlist">订单列表</NavLink></p><Route path="/admin/dash" component={Dash}></Route><Route path="/admin/orderlist" component={OrderList}></Route><Redirect from="/admin" to="/admin/dash"></Redirect></div>);
}

404页面

匹配任意地址,将404页面放在最后,并在外层加上组件控制只匹配一个页面。当无其他匹配页面时就显示404页面

<div className="views"><Switch><Route path="/" component={Home} exact></Route><Route path="/about" component={About}></Route><Route path="/details/:id" component={Details}></Route><Route path="/admin" component={Admin}></Route><Route path="*" component={NoMatch}></Route></Switch></div>

路由守卫

创建一个登录页面、添加Priviate权限页面

function Login({location,history}){function logIt(){// 存储到本地localStorage.setItem("isLog",true);// 获取redirect信息var redirect = location.state.redirect||"/";// 如果没有拿到就跳转到首页history.push(redirect);}return<div><h1>登录</h1><button onClick={logIt}>登录</button></div>}

React路由使用详解相关推荐

  1. React 路由react-router-dom详解

    React 路由react-router-dom详解 ( 路由嵌套 + 路由传参 + 路由权限 + 路由优化 按需导入 + 404页面 ) 前面我们先了解一下 路由是什么? 路由分类有哪些?内置API ...

  2. 一文带你搞懂React路由(详解版)

    文章目录 React 路由

  3. React 路由组件 详解

    文章目录 路由组件 1.HashRouter和BrowserRouter 2.Route 3.Router 4.Link和NavLink 5.Redirect 6.Switch 7.withRoute ...

  4. js路由在php上面使用,React中路由使用详解

    这次给大家带来React中路由使用详解,React中路由使用的注意事项有哪些,下面就是实战案例,一起来看一下. 路由 通过 URL 映射到对应的功能实现,React 的路由使用要先引入 react-r ...

  5. 25、react 中使用路由 router 详解

    react 中使用路由 router 详解 今天开始最新的一个模块,也是 react 开发中最重要的一部分,就是路由. SPA 理解 我们使用原生的 HTML + CSS + JavaScript 开 ...

  6. python Django Rest_Framework框架 视图集与路由Routers详解(图文并茂版)

    视图集与路由Routers详解 视图集 ViewSet视图集 代码实现 GenericViewSet视图集 代码实现 ModelViewSet视图集 ReadOnlyModelViewSet视图集 路 ...

  7. 单臂路由的详解及简单配置

    单臂路由的详解及简单配置 前言 1.什么是单臂路由 2.什么是逻辑子接口 3.单臂路由的配置 4.单臂路由的优缺点 1.什么是单臂路由 单臂路由(router-on-a-stick)是指在路由器的一个 ...

  8. ls路由算法_路由算法详解

    路由算法详解1. 引言 2. 路由器基础知识 3. LS算法 4. 示例:Dijkstra算法 5. DV算法 6. 分级路由 如果您已经阅读过博闻网中的路由器工作原理一文,您会了解到路由器的作用是管 ...

  9. 前端路由模式详解(hash和history)

    前端路由模式详解(hash和history) 前端路由有两种模式:hash 模式和 history 模式,接下来分析这两种模式的实现方式和优缺点. hash 模式 hash 模式是一种把前端路由的路径 ...

最新文章

  1. 确定一组矩形是否有两个重叠的算法
  2. ResNet最强改进版来了!ResNeSt:Split-Attention Networks
  3. Hadoop 03_核心:读写流程
  4. ROS在类中发布和接受消息(自定义消息)
  5. 巧用clear:both
  6. 有限元基础及ANSYS应用 - 第6节 - 自重作用下均匀截面直杆的ANSYS分析
  7. 偷偷看了同事的代码找到了优雅代码的秘密
  8. Origin 不连续数据点做出连续曲线
  9. 描述一个完美的约会_在网上约会之前,要学习发现一个骗子
  10. 分享 29 款 Chrome 插件,总有一款适合你
  11. CClientDC类
  12. 最全的数据分析平台整理
  13. 24小时切换简易时钟-51单片机
  14. Corel Knockout 2.0使用教程
  15. 射频单刀双掷开关常见结构
  16. 机顶盒编解码视频质量测试方法
  17. Easy Connect for Mac 安装教程
  18. 内部毕业学生对老男孩教育的客观评价
  19. 小学数学学习:神奇的走马灯数 142857
  20. lol2月20服务器维护,英雄联盟2月20日维护到几点 今天LOL几点可以进游戏

热门文章

  1. 微信支付退款回调踩坑及解决方案(附解密代码)
  2. Jumony Core 3,真正的HTML引擎,正式版发布
  3. 据说Jumony Parser是目前对HTML规范支持最好的HTML Parser
  4. 贵金属跌跌不休竞相比惨黄金跌去二位数钯金跌去三位数
  5. SpringMVC作用域操作详解
  6. esper java_java-从Esper套接字开始
  7. 成都小甜甜火爆抖音,这五个竖屏化思维你也该掌握!-新媒之家
  8. 决战阿法狗 柯洁会使出人类最后的杀招?
  9. Redis(分布式篇)
  10. 如何用计算机做排列函数,25个电脑办公技巧 办公族必懂的电脑小技巧 (全文)