react 路由守卫

react 路由守卫通过HOC的方式实现路由守卫

大家好,又见面了,我是你们的朋友全栈君。

原理
react路由守卫 是通过 高阶组件(HOC) 实现的

因此针对不同的情况就要封装不同的 HOC

接下来展示一个有关登录权限的路由守卫例子

demo

import React from 'react'
import { 
    Route, Redirect } from 'react-router-dom'
import { 
    connect } from 'react-redux'
export default connect(({ 
    user }) => ({ 
    isLogin: user.isLogin }))(
	function PrivateRoute({ 
    isLogin, component: Component, ...rest }) { 
   
		return (
			<Route
				{ 
   ...rest}
				render={ 
   props =>
					isLogin ? (
						<Component { 
   ...props} />
					) : (
						<Redirect
							to={ 
   { 
   
								pathname: '/login',
								state: { 
    redirect: props.location.pathname },
							}}
						/>
					)
				}
			/>
		)
	}
)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144094.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java环境变量需要在系统中做哪些设置(linux配置java环境变量)

    1.为什么要说这个问题?想起来两年前刚学习Java时,被要求先要设置环境变量,自然不解,随后网上找答案。现在想来感觉当时看到的答案都是神神叨叨,含糊不清,没有几个说的明明白白的。当然也有可能是当时的我没看明白吧…总之,相信我,看了我的博客,你不用再找别的地方了!2.环境变量环境变量就是英文直译:EnvironmentVariable。变量知道吧?对,就是可以随意给其赋值的一个存储单

    2022年4月11日
  • termux基本使用教程[通俗易懂]

    termux基本使用教程[通俗易懂]更新与https://lruihao.cn/termux1.html前面有一篇文章写到一些传送门初始化下载并初始化termux安装vim安装编辑器vimpkginstallvim解决中文乱码问题在home目录下,新建.vimrc文件vim.vimrc添加内容如下:setfileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom…

    2022年4月29日
  • ICMP报文格式详解

    ICMP报文格式详解1 引言2 ICMP报文的类型3 ICMP地址掩请求与应答4 ICMP时间戳请求与应答5 ICMP端口不可达差错1引言 ICMP经常被认为是IP层的一个组成部分。它传递差错以及其他需要注意的信息。ICMP报文通常被IP层或更层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。 ICMP报文是在IP数据报内部被传输的,它封装在IP数据报内。

    2022年6月4日
  • MYSQL EXPLAIN结果详解

    MYSQL EXPLAIN结果详解EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况。EXPLAIN不考虑各种Cache(缓存)。EXPLAIN不能显示MySQL在执行查询时所作的优化工作。部分统计信息是估算的,并非精确值。 EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划。1idselect的识别符,这是select的查询序列号。如果有两列数据id相同,则为同一组查询,由上到下执行。如果id值不同,id值越大,优先级越高。2select_type

    2022年8月31日
  • 史上最简单的Hibernate入门简单介绍

    史上最简单的Hibernate入门简单介绍

    2021年12月7日
  • 数组截取splice_splice返回值

    数组截取splice_splice返回值Javascript数组的splice方法介绍splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。语法格式array.splice(start[,deleteCount[,item1[,item2[,…]]]])参数start必选指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等价于

    2022年9月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号