怎么在反应中使用router4 +回来的实现路由权限控制

  介绍

今天就跟大家聊聊有关怎么在反应中使用router4 +回来的实现路由权限控制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>路由权限控制类

在这个方法里面,通过sessionStorage判断是否登录了,如果没有登录,就保存一下当前想要跳转的路由到回家的里面。然后跳转到我们登录页。

import  React 得到& # 39;反应# 39;   import {,路线,Redirect },得到& # 39;react-router-dom& # 39;   {},setLoginRedirectUrl  import 得到& # 39;. ./行动/loginaction # 39;      class  AuthorizedRoute  extends  React.Component  {   渲染才能(),{   ,,,const {组件,组件:,,……rest },=this.props   ,,,const  isLogged =, sessionStorage.getItem (“userName"), !=, null  ?, true :,假;   ,,,如果(! isLogged), {   ,,,,,setLoginRedirectUrl (this.props.location.pathname);   ,,,}   ,,,return  (   ,,,,,,,& lt; Route 其他{…},呈现={props =祝辞,{   ,,,,,,,,,return  isLogged   ,,,,,,,,,,,,,?,& lt; Component 道具{…},/比;   ,,,,,,,,,,,,,,,& lt; Redirect =?login",/比;   ,,,,,,,}},/比;   ,,,)   ,,}   }      export  default  AuthorizedRoute

<强>路由定义信息

路由信息也很简单。只是对需要登录后才能查看的路由用AuthorizedRoute定义。

import  React 得到& # 39;反应# 39;   import  {, BrowserRouter,开关,,,,Redirect },得到& # 39;react-router-dom& # 39;      import  Layout 得到& # 39;. ./页面/布局/布局# 39;   import  Login 得到& # 39;. ./页面/登录/登录# 39;   import  AuthorizedRoute 得到& # 39;。/AuthorizedRoute& # 39;   import  NoFound 得到& # 39;. ./页面/noFound NoFound& # 39;   import  Home 得到& # 39;. ./页面/home/回家# 39;   import  Order 得到& # 39;. ./页面/订单/订单# 39;   import  WorkOrder 得到& # 39;. ./页面/订单/WorkOrder& # 39;      export  const  Router =,(),=祝辞,(   ,,,& lt; BrowserRouter>   ,,,,,& lt; div>   ,,,,,,,& lt; Switch>   ,,,,,,,,,& lt; Route 路径=?login",组件={登录},/比;   ,,,,,,,,,& lt; Redirect 从=??exact =?login"/祝辞{/*注意重定向转向的地址要先定义好路由*/}   ,,,,,,,,,& lt; AuthorizedRoute 路径=?layout",组件={布局},/比;   ,,,,,,,,,& lt; Route 组件={NoFound}/比;   ,,,,,,,& lt;/Switch>   ,,,,,& lt;/div>   ,,,& lt;/BrowserRouter>   )

<>强登录页

就是把存在回家的里面的地址给取出来,登录成功后就跳转过去,如果没有就跳转到默认页面,我这里是默认跳到主页。因为用了antd的表单,代码有点长,只需要看连接回来的那两句和handleSubmit里面的内容。

import  React 得到& # 39;反应# 39;   import  & # 39;。/css # 39;   {import  login },得到& # 39;. ./. ./嘲笑/模拟# 39;   import {,形式,图标,输入,,按钮,,Checkbox },得到& # 39;antd& # 39;;   {},withRouter  import 得到& # 39;react-router-dom& # 39;;   {},connect  import 得到& # 39;react-redux& # 39;   const  FormItem =, Form.Item;      class  NormalLoginForm  extends  React.Component  {   构造函数才能(道具),{   ,,,超级(道具);   ,,,this.isLogging =,假;   ,,}   handleSubmit 才能=,(e),=祝辞,{   ,,,e.preventDefault ();   ,,,this.props.form.validateFields((呃,,值),=祝辞,{   ,,,,,if (!呃),{   ,,,,,,,this.isLogging =,真的;   ,,,,,,,登录(值)((),=祝辞,{   ,,,,,,,,,this.isLogging =,假;   ,,,,,,,,,let  toPath =, this.props.toPath ===, & # 39; & # 39;, ?, & # 39;/布局/回家# 39;,:this.props.toPath   ,,,,,,,,,this.props.history.push (toPath);   ,,,,,,,})   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在反应中使用router4 +回来的实现路由权限控制