摘要:原文地址在開發(fā)中,重定向和這種需求非常常見,使用可以使用進行重定向最常用的就是用戶登錄之后自動跳轉(zhuǎn)主頁。
原文地址:https://github.com/huruji/blog/issues/2
在開發(fā)中,重定向和404這種需求非常常見,使用React-router4.0可以使用Redirect進行重定向
最常用的就是用戶登錄之后自動跳轉(zhuǎn)主頁。
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 () } return ( ) } } export default Login;
以上這個示例僅僅是將登錄的狀態(tài)作為組件的state使用和維護的,在實際開發(fā)中,是否登錄的狀態(tài)應(yīng)該是全局使用的,
因此這時候可能你會需要考慮使用redux等這些數(shù)據(jù)狀態(tài)管理庫,方便我們做數(shù)據(jù)的管理。這里需要注意的使用傳統(tǒng)的登錄方式
使用cookie存儲無序且復(fù)雜的sessionID之類的來儲存用戶的信息,使用token的話,返回的可能是用戶信息,此時可以考慮
使用sessionStorage、localStorage來儲存用戶信息(包括頭像、用戶名等),此時書寫reducer時需要指定初始狀態(tài)
從存儲中獲取,如:
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頁面也非常簡單,只需要在路由系統(tǒng)最后使用Route指定404頁面的component即可
當(dāng)路由指定的所有路徑?jīng)]有匹配時,就會加載這個NoMatch組件,也就是404頁面
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/84936.html
摘要:實際上程序應(yīng)當(dāng)只加載當(dāng)前渲染頁所需的,也就是大家說的代碼分拆將所有的代碼分拆成多個小包,在用戶瀏覽過程中按需加載。這里面有個方法這是提供的方法,這也是按需加載的核心方法。 注:本文使用的 react-router 版本為 2.8.1 React Router 是一個非常出色的路由解決方案,同時也非常容易上手。但是當(dāng)網(wǎng)站規(guī)模越來越大的時候,首先出現(xiàn)的問題是 Javascript 文件變得...
摘要:官方文檔源碼這篇文章主要介紹了的基本用法包括動態(tài)路由編程式導(dǎo)航等安裝用法動態(tài)路由的基本用法編程式導(dǎo)航總結(jié)安裝用法示例代碼關(guān)于路由重定向使用的格式注意位置需要在定義路由的后面比如重定向就需要寫在后面關(guān)于路由匹配默認寫在路由末尾前 router@4 react-router@4官方文檔 github源碼 這篇文章主要介紹了react-router@4的基本用法,包括動態(tài)路由,編程式...
摘要:談?wù)勛罱褂玫膩黹_發(fā)項目,感覺確實是爽的飛起,然而總感覺還是少了點什么。注意當(dāng)前版本依賴的是請不要安裝最新版。同樣的也有這個方法表示在離開路由前執(zhí)行。會深度優(yōu)先遍歷整個理由配置來尋找一個與給定的相匹配的路由。配置是建立在之上的。 談?wù)?最近使用的 React + webpack 來開發(fā)項目,感覺確實是爽的飛起,然而總感覺還是少了點什么。對,是多頁面,每次請求頁面還要后端路由給你?多不爽...
摘要:適配路由問題絕對能用的一篇配置,文末直接有文件,伸手黨直接拿走本文環(huán)境比較復(fù)雜,首先兩層轉(zhuǎn)發(fā),并且訪問路徑也不是根路徑。不對做編碼,因此請求為,可以被規(guī)則匹配到注意是空格。配置錯誤解決優(yōu)先級問題后,問題依然存在。導(dǎo)致找不到請求。 nginx 適配react-routerbrowserRoute 路由問題 絕對能用的一篇nginx配置,文末直接有文件,伸手黨直接拿走 本文環(huán)境比較復(fù)雜,首...
摘要:不過這時的控制臺會拋出這樣一則警告提醒我們在服務(wù)端渲染時用來取代,并警告我們在時將不能用去混合服務(wù)端渲染出來的標簽。綜上所述,服務(wù)端和客戶端都是需要路由體現(xiàn)的。我們畫一下重點,意思很明確,就是為了服務(wù)端渲染而打造的。 拋磚引玉 在早幾年前,jquery算是一個前端工程師必備的技能。當(dāng)時很多公司采用的是java結(jié)合像velocity或者freemarker這種模板引擎的開發(fā)模式,頁面渲染...
閱讀 628·2023-04-25 18:37
閱讀 2790·2021-10-12 10:12
閱讀 8366·2021-09-22 15:07
閱讀 573·2019-08-30 15:55
閱讀 3181·2019-08-30 15:44
閱讀 2202·2019-08-30 15:44
閱讀 1634·2019-08-30 13:03
閱讀 1568·2019-08-30 12:55