欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

React-Router怎樣進(jìn)行頁面權(quán)限管理

這篇文章將為大家詳細(xì)講解有關(guān)React-Router怎樣進(jìn)行頁面權(quán)限管理,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

從策劃到設(shè)計(jì)制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、域名注冊、虛擬空間、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。

前言

在一個(gè)復(fù)雜的SAP應(yīng)用中,我們可能需要根據(jù)用戶的角色控制用戶進(jìn)行頁面的權(quán)限,甚至在用戶進(jìn)入系統(tǒng)之前就進(jìn)行權(quán)限的控制。本文就此一權(quán)限控制進(jìn)行討論。本文假設(shè)讀者了解React和React-Router的相關(guān)使用。

從傳統(tǒng)的Router開始

一個(gè)傳統(tǒng)的路由大概長下邊這個(gè)樣式,這是沒有添加任何權(quán)限限制的。

export default (store) => {
 const history = syncHistoryWithStore(hashHistory, store);
 return (
  <Router history={history}>
   <Route path="/" component={AppRoot} >
    <IndexRoute component={IndexPage} />
    <Route path="photo" component={PhotoPage} />
    <Route path="info" component={InfoPage} />
   </Route>
   {/* <Redirect path="*" to="/error" /> */}
  </Router>
 )
}

這里一共有3個(gè)頁面 IndexPage, PhotoPage,InfoPage。

添加第一個(gè)權(quán)限

假設(shè)我們需要在用戶進(jìn)入PhotoPage之前需要驗(yàn)證用戶是否有權(quán)限,根據(jù)store的的一個(gè)狀態(tài)去判斷。

先添加如下一個(gè)函數(shù)

const authRequired = (nextState, replace) => {
  // Now you can access the store object here.
  const state = store.getState();  
  if (state.admin != 1) {
   replace('/');
  }
 };

函數(shù)里我們判斷了state的admin是否等于1,否則跳轉(zhuǎn)到首頁。

然后在Route添加 onEnter={authRequired} 屬性

<Route path="photo" component={PhotoPage} onEnter={authRequired} />

通過以上,就完成了第一個(gè)權(quán)限的添加

進(jìn)入系統(tǒng)之前就進(jìn)行權(quán)限控制

如果需要在進(jìn)入系統(tǒng)之前就進(jìn)行權(quán)限控制,那么就需要改變一下策略。

比如上邊的例子,加入state的admin并未加載,那么就需要在上一層的route進(jìn)行數(shù)據(jù)加載

首先添加一個(gè)加載數(shù)據(jù)的函數(shù)

function loadData(nextState, replace, callback) {
  let unsubscribe;
  function onStateChanged() {
   const state = store.getState();
   if (state.admin) {
    unsubscribe();
    callback();
   }
  }
  unsubscribe = store.subscribe(onStateChanged);
  store.dispatch(actions.queryAdmin());
 }

接著再修改一下Router

<Router history={history}>
   <Route path="/" component={AppRoot} onEnter={loadData}>
    <IndexRoute component={IndexPage} />
    <Route path="photo" component={PhotoPage} onEnter={authRequired} />
    <Route path="info" component={InfoPage} />
   </Route>  
  </Router>

這樣在進(jìn)入下邊之前,就會(huì)先進(jìn)行數(shù)據(jù)加載。

通過以上簡單幾步,一個(gè)完整的權(quán)限控制鏈就完成了.

關(guān)于“React-Router怎樣進(jìn)行頁面權(quán)限管理”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

當(dāng)前名稱:React-Router怎樣進(jìn)行頁面權(quán)限管理
文章轉(zhuǎn)載:http://chinadenli.net/article28/gphscp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站網(wǎng)站建設(shè)、電子商務(wù)網(wǎng)頁設(shè)計(jì)公司、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
不卡中文字幕在线视频| 懂色一区二区三区四区| 亚洲国产精品一区二区| 国产一级特黄在线观看| 熟妇久久人妻中文字幕| 亚洲另类欧美综合日韩精品| 乱女午夜精品一区二区三区| 中文字幕亚洲视频一区二区| 麻豆亚州无矿码专区视频| 国产欧美韩日一区二区三区| 欧洲日韩精品一区二区三区| 国产精品一级香蕉一区| 国产亚洲成av人在线观看| 日韩高清一区二区三区四区 | 国产精品欧美一区二区三区不卡| 国产一区二区三区香蕉av| 精品少妇人妻一区二区三区| 亚洲夫妻性生活免费视频| 千仞雪下面好爽好紧好湿全文| 欧美熟妇一区二区在线| 精品午夜福利无人区乱码| 五月婷婷综合缴情六月| 亚洲最新av在线观看| 青青操成人免费在线视频| 国产亚洲午夜高清国产拍精品| 国产av一二三区在线观看| 日韩精品日韩激情日韩综合| 日韩精品小视频在线观看| 国产亚洲欧美一区二区| 国产精品流白浆无遮挡| 国产国产精品精品在线| 国产成人高清精品尤物| 欧美精品女同一区二区| 婷婷九月在线中文字幕| 亚洲一二三四区免费视频| 国产成人精品国产亚洲欧洲| 日本免费熟女一区二区三区| 国产一区欧美一区日韩一区| 久久国产青偷人人妻潘金莲| 国产一区二区三区免费福利| 欧美三级精品在线观看|