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