最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 22:31:36
文档

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

使用react-router4.0实现重定向和404功能的方法:在开发中,重定向和404这种需求非常常见,使用React-router4.0可以使用Redirect进行重定向 最常用的就是用户登录之后自动跳转主页。 import React, { Component } from 'react'; import axios from 'axios'; import {
推荐度:
导读使用react-router4.0实现重定向和404功能的方法:在开发中,重定向和404这种需求非常常见,使用React-router4.0可以使用Redirect进行重定向 最常用的就是用户登录之后自动跳转主页。 import React, { Component } from 'react'; import axios from 'axios'; import {


在开发中,重定向和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页面

文档

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

使用react-router4.0实现重定向和404功能的方法:在开发中,重定向和404这种需求非常常见,使用React-router4.0可以使用Redirect进行重定向 最常用的就是用户登录之后自动跳转主页。 import React, { Component } from 'react'; import axios from 'axios'; import {
推荐度:
标签: 使用 404 React
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top