安装

npm i react-router-dom -- save

<Router basename="/admin">
  <Route path="/" exact component={()=>{<div>首页</div>}}>
  <Route path="/about" exact component={()=>{<div>关于</div>}}>
</Router>

重定向组件

Redirect 
import React from 'react';
import './App.css';
import { BrowserRouter as Router, Route, Link, Redirect } from 'react-router-dom' function LoginInfo(props) {
console.log(props) // 这是通过 state 传参
if(props.location.state.loginState === 'success') {
return (
<Redirect to="/admin"></Redirect>
)
}else {
return (
<Redirect to="/login"></Redirect>
)
}
} let login = ()=>{
let obj = {
pathname:'/logininfo',
state:{
loginState:'success'
}
}
return (
<div>
<Link to={obj} >登录</Link>
</div>
)
}
class App extends React.Component{
render(){
return (
<Router>
<Route path="/" exact component={()=>(<div>首页</div>)}></Route>
<Route path="/login" exact component={()=>(<div> <Link to="/logininfo?loginState='success'" >登录</Link> </div>)}></Route>
<Route path="/login" exact component={login}></Route>
<Route path="/logininfo" exact component={LoginInfo}></Route>
</Router>
)
}
} export default App;

switch  内部的Route 只匹配一次

class App  extends React.Component{
render(){
return (
<Router>
<Switch>
<Route path="/" exact component={()=>(<div>首页</div>)}></Route>
<Route path="/login" exact component={()=>(<div> <Link to="/logininfo?loginState='success'" >登录</Link> </div>)}></Route>
<Route path="/login" exact component={login}></Route>
<Route path="/logininfo" exact component={LoginInfo}></Route>
<Route path="/abc" exact component={()=>(<div>首页1</div>)}></Route>
<Route path="/abc" exact component={()=>(<div>首页2</div>)}></Route>
</Switch>
</Router>
)
}
}

不使用Link  按钮直接跳转

class ChildCom extends React.Component {
render() {
return (
<button onClick={this.show}>
点击回首页
</button>
)
}
show=()=>{
// console.log(this.props);
this.props.history.push("/",{msg:'给首页的数据'}) }
} class App extends React.Component{
render(){
return (
<Router>
<Route path="/" exact component={(props)=>{console.log(props);return(<div>首页</div>)}}></Route>
</Switch>
</Router>
)
}
}

react 05 router的更多相关文章

  1. ReactJS React+Redux+Router+antDesign通用高效率开发模板,夜间模式为例

    工作比较忙,一直没有时间总结下最近学习的一些东西,为了方便前端开发,我使用React+Redux+Router+antDesign总结了一个通用的模板,这个技术栈在前端开发者中是非常常见的. 总的来说 ...

  2. Nginx支持 React browser router

    修改nginx配置文件,添加try_file配置如下,即可实现对 React browser router 的支持. location / { root /var/www/mysite; try_fi ...

  3. react 装 router - yarn add react-router-dom@next

    react 装 router yarn add react-router-dom@next

  4. [React] react+redux+router+webpack+antd环境搭建一版

    好久之前搭建的一个react执行环境,受历史影响是webpack3.10.0和webpack-dev-server2.7.1的环境,新项目准备用webpack4重新弄弄了,旧的记录就合并发布了(在没有 ...

  5. [React] 05 - Route: connect with ExpressJS

    基础: 初步理解:Node.js Express 框架 参见:[Node.js] 08 - Web Server and REST API 进阶: Ref: 如何系统地学习 Express?[该网页有 ...

  6. 用react + redux + router写一个todo

    概述 最近学习redux,打算用redux + router写了一个todo.记录下来,供以后开发时参考,相信对其他人也有用. 注意: 我只实现了Footer组件的router,其它组件的实现方法是类 ...

  7. react在router中传递数据的2种方法

    概述 不传递数据叫什么单页面应用,渲染模块还需要http请求算什么单页面应用. 本文总结了react-router4中使用BrowserRouter时传递数据的两种方法,供以后开发参考,相信对其他人也 ...

  8. [React] 10 - Tutorial: router

    Ref: REACT JS TUTORIAL #6 - React Router & Intro to Single Page Apps with React JS Ref: REACT JS ...

  9. React学习(3)——Router路由的使用和页面跳转

    React-Router的中文文档可以参照如下链接: http://react-guide.github.io/react-router-cn/docs/Introduction.html 文档中介绍 ...

  10. React+React Router+React-Transition-Group实现页面左右滑动+滚动位置记忆

    2018年12月17日更新: 修复在qq浏览器下执行pop跳转时页面错位问题 本文的代码已封装为npm包发布:react-slide-animation-router 在React Router中,想 ...

随机推荐

  1. AcWing342. 道路与航线

    原题链接 解题思路 这题用\(SPFA\)会被卡,所以我们不能用\(SPFA\) 但是观察数据我们可以发现对于道路,\(0≤C_i≤10^{5}\) 所以对于每个连通块(内部不存在航线),我们可以用\ ...

  2. JavaScript 深拷贝的循环引用问题

    如果说道实现深拷贝最简单的方法,我们第一个想到的就是 JSON.stringify() 方法,因为JSON.stringify()后返回的是字符串,所以我们会再使用JSON.parse()转换为对象, ...

  3. Unix 系统数据文件那些事儿

    前言 Unix like 系统和 windows 的最大区别就是有一套标准的系统信息数据文件,一般存放在 /etc/ 目录下,并且提供了一组近似的接口访问和查询信息,这些基础设施让系统管理看起来井井有 ...

  4. CLISP学习(一)

    Lisp Lisp发表于1960,是由数学家约翰·麦卡锡发明的. 在计算机有所发展时,数学家们对人工智能有着极大的兴趣,觉得可以实现一个共通的方法,使计算机能够处理链表中的符号数据,允许语言的处理.信 ...

  5. Lombok中@Builder和@SuperBuilder注解的用法

    @Builder 是 lombok 中的注解.可以使用builder()构造的Person.PersonBuilder对象进行链式调用,给所有属性依次赋值. Person person1 = Pers ...

  6. Ubuntu下的LGT8F328P MiniEVB Arduino开发和烧录环境

    基于 LGT8F328P LQFP32 的 Arduino MiniEVB, 这个板型资料较少, 记录一下开发环境和烧录过程以及当中遇到的问题. 关于 LGT8F328P 芯片参数 8位RISC内核 ...

  7. 关于VBA中,activesheet用法的一些思考

    前二天,给财务部做了个数据采集的工具,因为财务现在用的是excel2013 和2017的版本,所以我决定不用python,改用VBA来处理这个工具. 在 写过程的时候,我用了sheets(i)来定位表 ...

  8. 万字详解,吃透 MongoDB!

    本文已经收录进 JavaGuide(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识.) 少部分内容参考了 MongoDB 官方文档的描述,在此说明一下. MongoDB ...

  9. [Vue warn]: Invalid prop: type check failed for prop "model". Expected Object, got String with value ""

    问题描述: [Vue warn]: Invalid prop: type check failed for prop "model". Expected Object, got S ...

  10. Oracle ADG环境下的RMAN备份策略

    作为IT运维人员,尤其是数据库岗位,数据的备份重于一切. 现在很多用户会有一个普遍误区,认为现在类似ADG这类灾备已经很完善,且实时性也更佳,往往就忽略了传统的备份效用. 但实际上,我们千万不能因为有 ...