当前位置:首页 > 日记 > 正文

使用react-router4.0实现重定向和404功能的方法

使用react-router4.0实现重定向和404功能的方法

在开发中,重定向和404这种需求非常常见,使用React-router4.0可以使用Redirect进行重定向

最常用的就是用户登录之后自动跳转主页。

import React, { Component } from 'react';import axios from 'axios';import { Redirect } from 'react-router-dom';class Login extends Component{ constructor(){  super();  this.state = {value: '', logined: false};  this.handleChange = this.handleChange.bind(this);  this.toLogin = this.toLogin.bind(this); } handleChange(event) {  this.setState({value: event.target.value}) } toLogin(accesstoken) {  axios.post('yoururl',{accesstoken})   .then((res) => {    this.setState({logined: true});   }) } render() {  if(this.props.logined) {   return (    <Redirect to="/user"/>   )  }  return (   <div>     <input type="text" value={this.state.value} onChange={this.handleChange} />     <a onClick={() => { this.toLogin(this.state.value) }}>登录</a>   </div>  ) }}export default Login;

以上这个示例仅仅是将登录的状态作为组件的state使用和维护的,在实际开发中,是否登录的状态应该是全局使用的,因此这时候可能你会需要考虑使用redux等这些数据状态管理库,方便我们做数据的管理。这里需要注意的使用传统的登录方式使用cookie存储无序且复杂的sessionID之类的来储存用户的信息,使用token的话,返回的可能是用户信息,此时可以考虑使用sessionStorage、localStorage来储存用户信息(包括头像、用户名等),此时书写reducer时需要指定初始状态从存储中获取,如:

const LOGIN_SUCCESS = 'LOGIN_SUCCESS';const LOGIN_FAILED = 'LOGIN_FAILED';const LOGINOUT = 'LOGINOUT';const Login = function(state, action) { if(!state) {  console.log('state');  if(sessionStorage.getItem('usermsg')) {   return {    logined: true,    usermsg: JSON.parse(sessionStorage.getItem('usermsg'))   }  }  return {   logined: false,   usermsg: {}  } } switch(action.type) {  case LOGIN_SUCCESS:   return {logined: true,usermsg: action.usermsg};  case LOGIN_FAILED:   return {logined: false,usermsg:{}};  case LOGINOUT:   return {logined: false, usermsg: {}};  default:   return state }};export default Login;

指定404页面也非常简单,只需要在路由系统最后使用Route指定404页面的component即可

<Switch> <Route path="/" exact component={Home}/> <Route path="/user" component={User}/> <Route component={NoMatch}/></Switch>

当路由指定的所有路径没有匹配时,就会加载这个NoMatch组件,也就是404页面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

BootStrap在jsp中的使用

BootStrap在jsp中的使用

电脑软件,BootStrap,jsp,下载bootstrap的js,css文件:在jsp中的应用:第一步:新建一个web项目将bootstrap下载下来的文件放入WEB-INF下面的,lib目录下,新建一个bootstrap文件:第二步:新建一个index.jsp文件,引入所使用的css.js和bootstrap的:注意这里的…

jquery uploadify如何取消已上传成

jquery uploadify如何取消已上传成

取消,文件上传,上传,文件,电脑软件,如何使用uploadify进行文件上传,各位都能够在网上找到,但是需要注意版本号.我这里仅仅说一下,在文件已经成功上传到服务器之后,如何取消文件的上传. 我使用的是自动上传,即将'auto'属性设置为true. 1.首…

qq个性签名情侣发光

qq个性签名情侣发光

个性签名,情侣,大全,电脑软件,qq,  一句个性签名:其实不是因为她漂亮才喜欢她,而是喜欢她后才发现她漂亮。下面小编给大家分享了关于qq个性签名情侣发光,希望你喜欢。qq个性签名情侣发光精选1) 原以为爱情这辈子都没有了,结果还是等到她了。2…

怎样给word文字添加动态效果

怎样给word文字添加动态效果

动态,文字,步骤,效果,电脑软件,  我们在用Word编辑文本的时候,有需要对相关特定文字添加动态效果,使其在整个文本中更为突出。那么下面就由小编给大家分享下给word文字添加动态效果的技巧,希望能帮助到您。word文字添加动态效果的步骤步骤一…

vue绑定class与行间样式style详解

vue绑定class与行间样式style详解

绑定,详解,样式,电脑软件,vue,一、绑定class属性的方式1、通过数组的方式,为元素绑定多个class<style> .red { color:red; /*color:#ff8800;*/ } .bg { background: #000; /*background: green;*/ } </style> window.onlo…

怎么在WPS表格中使用语音功能WPS表

怎么在WPS表格中使用语音功能WPS表

语音,步骤,使用教程,表格,功能,  wps表格2010有个语音功能,它可以用来核对数据,可以设置朗读的方法,学会它可以使你减少输入错误,提高办公效率。下面小编就教你怎么在WPS表格中使用语音功能。希望对你有帮助!WPS表格中使用语音功能的步骤利用…

AngularJS中ng-class用法实例分析

AngularJS中ng-class用法实例分析

实例分析,电脑软件,AngularJS,ng,class,本文实例讲述了AngularJS中ng-class用法。分享给大家供大家参考,具体如下:使用 ng-class 动态设置元素的类,方法是绑定一个代表所有需要添加的类的表达式。重复的类不会添加。当表达式发生变化,先前添加…

javascript浏览器用户代理检测脚本

javascript浏览器用户代理检测脚本

浏览器,用户代理,脚本,检测,方法,以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。var client = function(){ // 呈现引擎 var engine = { ie: 0, gecko: 0, webkit: 0, khtm…

PS怎么绘制一朵简单的黄蕊花朵?

PS怎么绘制一朵简单的黄蕊花朵?

绘制,简单,电脑软件,PS,PS绘画出花朵的教程,很简单,详细图文如下。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、新建一个如图大小的背景图层然后在上面新建一个图层 2、利用钢笔工具在图层上描出一…

Indesign怎么快速全屏查看制作中的

Indesign怎么快速全屏查看制作中的

文档,全屏,快速,电脑软件,Indesign,在使用Indesign进行排版工作的时候,设计之中只能查看局部,不能全局查看作品的完成度,其实,ID有着非常贴心的全屏查看功能,操作也非常非常的简单,来一起看一下。软件名称:Adobe InDesign CC 2017 v12.0.0 中文破…

AI字体不转曲怎么填充渐变色?

AI字体不转曲怎么填充渐变色?

填充,渐变色,字体,不转,电脑软件,在AI设计应用中,我们知道一般情况下要对输入的文字字体做渐变效果填充时,需要创建轮廓(快捷键:ctrl+shift+O),那么问题来了:创建轮廓后,文字内容不支持键入修改,即此时文字已转变成图层,一旦发现内容有误,又需要删除重…

PS怎么设计暗红色的砖墙纹理图案?

PS怎么设计暗红色的砖墙纹理图案?

纹理,砖墙,暗红色,图案,电脑软件,PS软件应用范围十分广泛,深受广大观众的喜欢,主要应用到图片处理,文字排版,图形设计,网页设计,建筑效果图的修饰等多个方面,下面和小编一起来学习如何用PS设计红砖纹理这篇文章吧。软件名称:Adobe Photoshop 8.0 中…