首页 > 其他分享 >ReactRouter-路由拦截

ReactRouter-路由拦截

时间:2022-12-06 02:22:54浏览次数:37  
标签:ReactRouter 授权 组件 import 拦截 鉴权 路由

路由拦截

  • 应用场景:鉴权,当用户进入到需要授权的组件时,这时候进行拦截,判断用户是否授权,如果授权则放行,正常跳转,如果非授权则重定向授权页面。
举个栗子
import React from 'react'
import { BrowserRouter, HashRouter, Redirect, Route, Switch } from 'react-router-dom'
import Center from '../view/Center'
import Login from '../view/Login'

const isAuth = ()=> { // 判断用户是否鉴权
  return sessionStorage.token
}
export default function IndexRouter(props) { // 配置路由
  return (
    <HashRouter>
      <Switch>
        // 当render函数被执行之后 会返回一个对象,对象里有编程式跳转方法,获取跳转过来的参数。。。可以再次传递给要渲染的组件使用,当使用component的属性时,Route会自动传给路由组件使用,如果是render需要自己手动传给路由组件
        <Route path='/center' render={(props)=> { // 当路径匹配会执行render函数准备渲染组件,这时候我们可以拦截,最终渲染什么组件我们可以控制
          // 判断用户是否鉴权,鉴权则跳center组件,否则重定向到登录页
          return isAuth() ? <Center {...props}></Center> : <Redirect to='/login'></Redirect>
        }}></Route>
        <Route path='/login' component={Login}></Route>
      </Switch>
    </HashRouter>
  )
}

标签:ReactRouter,授权,组件,import,拦截,鉴权,路由
From: https://www.cnblogs.com/bingquan1/p/16954094.html

相关文章

  • ReactRouter-路由模式
    路由模式BrowserRouter与HashRouterBrowserRouter没有#的路径HashRouter有#路径举个栗子importReactfrom'react'import{BrowserRouter,HashRouter,Red......
  • ReactRouter-参数传递与获取参数
    参数传递与获取参数1.动态路由传参*前提配置路由,留好占位//1.配置占位<HashRouter><Switch><Routepath="/xxx/:id"></Route>//留好占位</Switch><......
  • React native View 事件拦截与处理
    ReactNative事件处理流程在事件处理中,每个事件只能由一个组件处理,如组件C处理了事件,那么AB就不会处理这个事件了示例:如果发送一个触摸或移动事件,执行流程如下1.询问谁......
  • Castle.DynamicProxy拦截器
    在asp.net mvc或asp.net miniapi中,有过滤器,可以在请求前或后增加一层,达到验证,过滤等作用,如果在Service的方法前后加一层呢?这里介绍一下Castle.DynamicProxy的用法。......
  • Castle.DynamicProxy拦截器
    在asp.net mvc或asp.net miniapi中,有过滤器,可以在请求前或后增加一层,达到验证,过滤等作用,如果在Service的方法前后加一层呢?这里介绍一下Castle.DynamicProxy的用法。......
  • Castle.DynamicProxy拦截器
    在asp.net mvc或asp.net miniapi中,有过滤器,可以在请求前或后增加一层,达到验证,过滤等作用,如果在Service的方法前后加一层呢?这里介绍一下Castle.DynamicProxy的用法。......
  • vue实现路由懒加载
    1、安装插件@babel/plugin-syntax-dynamic-importnpminstall–-save-dev@babel/plugin-syntax-dynamic-import2、安装完成之后,打开babel.config.js文件,将@babel/p......
  • MeterSphere BeanShell 前置脚本拦截请求,获取请求参数,修改后放回请求体
    在BeanShell前置脚本中拦截请求,获取请求参数,修改后放回请求体背景在测试项目时,需要对接口请求中的参数值进行首字母排序后,拼成字符串,进行md5加密,然后将加密好的字符串,......
  • spring mvc中的拦截器小结
    在springmvc中,拦截器其实比较简单了,下面简单小结并demo下。preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们......
  • 重复使用一个路由组件而不同路径遇到的周期函数触发问题
    最近在开发Vue3项目的时候,因为业务需要,存在两个页面布局、逻辑等差不多的页面,本着偷懒......