全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用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页面

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


# reactrouter重定向  # react  # router  # 重定向  # 404  # 详解React中传入组件的props改变时更新组件的几种实现方法  # VSCode配置react开发环境的步骤  # react-redux中connect的装饰器用法@connect详解  # ReactNative 之FlatList使用及踩坑封装总结  # React Native实现简单的登录功能(推荐)  # ReactNative之键盘Keyboard的弹出与消失示例  # react-router browserHistory刷新页面404问题解决方法  # 详解React Native开源时间日期选择器组件(react-native-datetime)  # react中使用swiper的具体方法  # React useMemo和useCallback的使用场景  # 就会  # 你会  # 只需  # 要在  # 仅仅是  # 可以使用  # 跳转  # 用户登录  # 需要注意  # 最常用  # 大家多多  # 时需  # 应该是  # 这时候  # 加载  # 在实际  # state  # false  # logined 


相关文章: 天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  如何通过云梦建站系统实现SEO快速优化?  如何注册花生壳免费域名并搭建个人网站?  制作网站怎么制作,*游戏网站怎么搭建?  制作电商网页,电商供应链怎么做?  高防服务器:AI智能防御DDoS攻击与数据安全保障  历史网站制作软件,华为如何找回被删除的网站?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  建站之星2.7模板快速切换与批量管理功能操作指南  如何在建站宝盒中设置产品搜索功能?  建站之星安装后如何配置SEO及设计样式?  建站主机CVM配置优化、SEO策略与性能提升指南  建站之星后台密码遗忘?如何快速找回?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  深圳网站制作平台,深圳市做网站好的公司有哪些?  css网站制作参考文献有哪些,易聊怎么注册?  建站之星图片链接生成指南:自助建站与智能设计教程  制作企业网站建设方案,怎样建设一个公司网站?  建站10G流量真的够用吗?如何应对访问高峰?  如何配置FTP站点权限与安全设置?  如何选择高效便捷的WAP商城建站系统?  建站之星云端配置指南:模板选择与SEO优化一键生成  自助网站制作软件,个人如何自助建网站?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  宝塔面板如何快速创建新站点?  中山网站制作网页,中山新生登记系统登记流程?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  宝塔建站教程:一键部署配置流程与SEO优化实战指南  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何在香港服务器上快速搭建免备案网站?  如何选择高性价比服务器搭建个人网站?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何破解联通资金短缺导致的基站建设难题?  如何在建站主机中优化服务器配置?  制作网站公司那家好,网络公司是做什么的?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  如何快速查询网址的建站时间与历史轨迹?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  SQL查询语句优化的实用方法总结  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  简单实现Android文件上传  如何在Golang中指定模块版本_使用go.mod控制版本号  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  建站主机空间推荐 高性价比配置与快速部署方案解析  教学论文网站制作软件有哪些,写论文用什么软件 ? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。