React导航守卫(V6路由)

下载:

npm i react-router-dom

当登录之后才可以去访问其他页面

(1)在登录页面,我们点击登录的时候,保存一个token,在登录页面引入重定向useNavigate

import { useNavigate } from 'react-router-dom'

const navigate = useNavigate()

const login = () => {
    //点击登录时,存入token并重定向首页面
    sessionStorage.token = "123"
    navigate("/home")
}

<button type="button" onclick={login}>登录</button>

(2)在存放路由的文件中,封装一个高阶组件

封装一个高阶组件(其实就是函数,这个函数要接收一个组件作为参数,返回一个组件)

const AuthComponents = props => {
    //获取到当前组件
    const Com = props.children.type;
    //列表token是否存在
    if(sessionstorage.token){
        return <Com />
    }else{
        return <Navigate to="/login">
    }
}

(3)当我们给首页加入一个拦截,就可以使用<AuthComponents></AuthComponents>包裹起来

例如:

{
    path:'/home',
    element:<AuthComponents><Home /></AuthComponents>
}

相关推荐

  1. React导航守卫(V6)

    2024-01-19 02:32:04       61 阅读
  2. React Router 6 重定向与编程式导航指南

    2024-01-19 02:32:04       33 阅读
  3. 使用 react-router-dom v6.22 的 useRoutes

    2024-01-19 02:32:04       41 阅读
  4. vue - 守卫

    2024-01-19 02:32:04       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-19 02:32:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-19 02:32:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-19 02:32:04       82 阅读
  4. Python语言-面向对象

    2024-01-19 02:32:04       91 阅读

热门阅读

  1. 解决Reinitialized existing Git repository

    2024-01-19 02:32:04       57 阅读
  2. git push/pull/clone超时解决

    2024-01-19 02:32:04       49 阅读
  3. Crow:CROW_STATIC_DIRECTORY静态资源

    2024-01-19 02:32:04       54 阅读
  4. 安卓、ios系统详解

    2024-01-19 02:32:04       55 阅读
  5. nginx配置https( Windows Server)

    2024-01-19 02:32:04       60 阅读
  6. Docker

    Docker

    2024-01-19 02:32:04      53 阅读
  7. 数据库系统概论-00引言

    2024-01-19 02:32:04       55 阅读
  8. 怎么检测香港服务器的速度?

    2024-01-19 02:32:04       48 阅读