react-router v4校驗登錄

react-router v2 中有onEnter 鉤子函數(shù),校驗登錄邏輯在這里寫最為合適不過了;時過境遷,v4版本迎來了api大改,onEnter沒有了;參考了網(wǎng)絡(luò)上一些大牛的奇技淫巧,再結(jié)合自身項目的現(xiàn)有業(yè)務(wù);下面?? 是這道菜的做法,歡迎各位大佬來品嘗:

核心食材

1.????v4推出的 <Redirect /> 組件

2.? ? HOC(verify)

3.? ? react-router-dom

菜譜

react-router 的Route Router 組件,這里就不闡述了,可以查下官網(wǎng)的用法;那里說的比我好多了;核心做法是Route的component 傳入一個verify(Comp)? ?

即<Route component={verify(Comp)}></Route>

HOC

const verify = (Comp) => {
? ? return class realComp extends React.Component {
? ? ? ? ? constructor(props) {
? ? ? ? ? ? ? ? super(props)
? ? ? ? ? ? ? ? this.state = {
? ? ? ? ? ? ? ? ? ? ? isLogin: 初始化,
? ? ? ? ? ? ? ? }
? ? ? ? ? ?}
? ? ? ? ? render() {
? ? ? ? ? ? ? if (this.state.isLogin === '初始化') {
? ? ? ? ? ? ? ? ? ?return null
? ? ? ? ? ? ? } else if (未登陸) {
? ? ? ? ? ? ? ? ? ?return <Redirect to='/login' />
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?return <Comp {...this.props} />
? ? ? ? ? }
? ? }
}

1.? 參數(shù) Comp

2.? 登錄 return <Comp />

3.? 未登錄 return <Redirect to='/login' />

總結(jié):主要是結(jié)合高階函數(shù)(組件)思想和 v4 的<Redirect />?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在這個教程里,我們會從一個例子React應(yīng)用開始學(xué)習(xí)react-router-dom。其中你會學(xué)習(xí)如何使用Link...
    uncle_charlie閱讀 34,811評論 1 40
  • 深入JSX date:20170412筆記原文其實JSX是React.createElement(componen...
    gaoer1938閱讀 8,183評論 2 35
  • 做React需要會什么? react的功能其實很單一,主要負責(zé)渲染的功能,現(xiàn)有的框架,比如angular是一個大而...
    李先生Mr_Li閱讀 3,018評論 1 20
  • 自己是屬于比較幸運的那種,從很小的時候開始,自己喜歡什么、有什么興趣愛好的話父母都是贊同的。但是沒能堅持到最后,父...
    哎吆呦呦切克鬧閱讀 284評論 0 1
  • 背景 今天進行項目的時候,原本正常運行的項目 莫名的crash了解決這個問題的步驟: 查看控制臺拋出的錯誤 拋出異...
    申申申申申閱讀 3,961評論 2 5

友情鏈接更多精彩內(nèi)容