react 05 router
安装
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的更多相关文章
- ReactJS React+Redux+Router+antDesign通用高效率开发模板,夜间模式为例
工作比较忙,一直没有时间总结下最近学习的一些东西,为了方便前端开发,我使用React+Redux+Router+antDesign总结了一个通用的模板,这个技术栈在前端开发者中是非常常见的. 总的来说 ...
- Nginx支持 React browser router
修改nginx配置文件,添加try_file配置如下,即可实现对 React browser router 的支持. location / { root /var/www/mysite; try_fi ...
- react 装 router - yarn add react-router-dom@next
react 装 router yarn add react-router-dom@next
- [React] react+redux+router+webpack+antd环境搭建一版
好久之前搭建的一个react执行环境,受历史影响是webpack3.10.0和webpack-dev-server2.7.1的环境,新项目准备用webpack4重新弄弄了,旧的记录就合并发布了(在没有 ...
- [React] 05 - Route: connect with ExpressJS
基础: 初步理解:Node.js Express 框架 参见:[Node.js] 08 - Web Server and REST API 进阶: Ref: 如何系统地学习 Express?[该网页有 ...
- 用react + redux + router写一个todo
概述 最近学习redux,打算用redux + router写了一个todo.记录下来,供以后开发时参考,相信对其他人也有用. 注意: 我只实现了Footer组件的router,其它组件的实现方法是类 ...
- react在router中传递数据的2种方法
概述 不传递数据叫什么单页面应用,渲染模块还需要http请求算什么单页面应用. 本文总结了react-router4中使用BrowserRouter时传递数据的两种方法,供以后开发参考,相信对其他人也 ...
- [React] 10 - Tutorial: router
Ref: REACT JS TUTORIAL #6 - React Router & Intro to Single Page Apps with React JS Ref: REACT JS ...
- React学习(3)——Router路由的使用和页面跳转
React-Router的中文文档可以参照如下链接: http://react-guide.github.io/react-router-cn/docs/Introduction.html 文档中介绍 ...
- React+React Router+React-Transition-Group实现页面左右滑动+滚动位置记忆
2018年12月17日更新: 修复在qq浏览器下执行pop跳转时页面错位问题 本文的代码已封装为npm包发布:react-slide-animation-router 在React Router中,想 ...
随机推荐
- Redis RDB 与AOF
参考书籍<Redis设计与实现> 一丶为什么redis需要持久化 redis 作为一个内存数据库,如果不想办法将存储在内存中的数据,保存到磁盘中,那么一旦服务器进程退出,那么redis数据 ...
- [机器学习] Yellowbrick使用笔记8-模型选择可视化
Yellowbrick可视化工具旨在指导模型选择过程.一般来说,模型选择是一个搜索问题,定义如下:给定N个由数值属性描述的实例和(可选)一个估计目标,找到一个由特征.算法和最适合数据的超参数组成的三元 ...
- 1_使用swiper数组对象循环图片遇到的问题
今天在练习微信小程序的swiper组件时,想用列表循环出图片,发现图片一直没出来,控制台也没有报错,后来仔细一看,原来是语法格式写错了. 以下是我列表循环踩过的坑: 一:微信小程序的列表循环和vue的 ...
- linux硬盘分区挂载
这里使用手动挂载方式,还有其他挂载方式请百度 检查网站的磁盘状态,确认是否有没有分区的磁盘. fdisk -l 如图所示,这个服务器有两个硬盘第一个299.0G,第二个20000.0G.这种情况说明硬 ...
- OuputStreamWriter介绍-OuputStreamReader介绍
OuputStreamWriter介绍 java.io.Outputstreamlwriter extends writeroutputStreamwriter:是字符流通向字节流的桥梁:可使用指定的 ...
- 在腾讯云上创建一个玩具docker-mysql数据服务
有时候开发需求会自己做一下测试数据,在自己电脑本地安装的服务多了电脑环境会搞的很乱,这时使用云服务器安装个docker服务是一个不错的寻找. 下面步骤是在腾讯云上安装docker-mysql镜像,并导 ...
- 【开源】libserial_protocol:适用于单片机的串口通信协议基础库
借助五一假期,写了一个串口通信协议基础库,虽然写着适用于单片机,但实际上并不限制具体的硬件平台. 特点如下: 不涉及到具体硬件,libserial_protocol 纯软件协议,与具体硬件分离. 内存 ...
- Windows性能监控工具Perfmon的使用、性能指标分析
Fighting_001 关注 0.1 2018.08.25 22:18* 字数 1488 阅读 7604评论 0喜欢 4 目录结构 一.Perfmon简介.性能监控指标.性能对象指标 1.常用的性 ...
- Django3.X使用富文本编辑器kindereditor上传图片时一直转圈圈,如何解决
问题描述: 在写bbs项目的时候,老师用的是Django1.X结合富文本编辑器kindeditor,实现了图片上传,但是我在用Django3.X的时候,代码和老师一模一样,上传图片的时候一直转圈圈?? ...
- C++ 从数组中拿值,每个值不相同
代码和思路 原理就是生成0,n个索引,每个索引不相同即可. 索引再到数组拿数据就行 #include <iostream> #include <vector> #include ...