react路由守卫、路由监听等总结

2023-11-15

1、路由守卫(拦截)

        react框架没有路由守卫功能,只能通过在路由里设置meta元字符实现路由拦截。路由拦截就是路由在发生变化时需要进行的拦截处理。

2、监听路由变化

    方式:

  1、路由下的内容组件通过history对象来进行监听

class Header extends Component {
    componentDidMount() {
        // 监听路由的变化,如果路由发生变化则进行相应操作
        this.props.history.listen(location => {
            // 最新路由的 location 对象,可以通过比较 pathname 是否相同来判断路由的变化情况
            if (this.props.location.pathname !== location.pathname) {
               // 路由发生了变化
            }
        })
    }
}

       2、组件重新渲染前后(使用 componentWillReceiveProps 、 componentDidUpdate 、componentWillUpdate

class Header extends Component {
    componentWillReceiveProps (nextProps, nextState) {
        if (this.props.location.pathname !== nextProps.location.pathname){
            // 路由发生了变化
        }
    }
}

       3、hooks方式监听

import React, { useEffect } from 'React';
const Header = function (props) {
  useEffect(() => {
    console.log(props.location);
  }, [props.location])
}
export default Header;

react组件创建方式分为类组件和函数组件(最佳)。

        纯函数组件优点是比类组件更加轻便。

        (纯函数:返回结果只依赖于它的参数,而且没有任何可观察的副作用,函数与外界交流数据只通过参数返回值

        纯函数组件也有以下不太好的地方:         

                1、纯函数组件没有状态

                2、纯函数组件没有生命周期

                3、纯函数组件没有this

                4、只能是纯函数

        为此React团队设计出了React Hooks(英文意思是“钩子”)。React默认有四种常用的钩子:

        1、useState(): 状态钩子

              用法与class的this.setState基本一致

        2、useContext():共享状态钩子

                        Context实现跨层级的组件数据传递,既不需要在组件树中通过逐层传递props或者

                state方法来传递数据。

                        该钩子的作用,在组件之间共享状态,其作用就是可以做状态的分发,作用是避

                免了react逐层通过Props传递参数

        3、useReducer():Action钩子

        4、useEffect():副作用钩子

       副作用:在React组件中执行比如修改外部作用域/全局变量、修改传入的参数、发送请求、console.log、手动修改DOM都属于副作用)

        

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react路由守卫、路由监听等总结 的相关文章

  • 【windTerm

    前言 随着时间的推移 在我们的日常工作中对于 SSH 工具的新鲜感日益不足 好多同学都在寻求一款新奇的 好用的 SSH 客户端 虽然目前市场上现存的 MobaXterm FinalShell CRT Putty Tabby 等工具已经能够满
  • Matlab/Simulink-PSFB移相全桥电路仿真搭建

    1 前言 Simulink零基础 PSFB移相全桥电路仿真搭建 PSFB电路仿真 移相全桥短路仿真 十分钟让你掌握PSFB移相全桥电路的闭环控制 移相全桥 PSFB DC DC转换器经常用于降压高直流母线电压 并在中大功率应用中提供隔离 P
  • python 线程池threadpool(使用篇)

    最近在做一个视频设备管理的项目 设备包括 摄像机 DVR NVR等 包括设备信息补全 设备状态推送 设备流地址推送等 如果同时导入的设备数量较多 如果使用单线程进行设备检测 那么由于设备数量较多 会带来较大的延时 因此考虑多线程处理此问题
  • python定义类的时候继承object类

    区别在于python2和python3 python3继承不继承object类都没有区别 但是python2继承object类的话 可以获得更多的魔术方法 静态方法 类方法的构造 类属性的快速访问 定制类实例的实现方法 PS python2
  • Python request content 和 text 的区别

    Python request content和text的区别 text 返回的是 unicode 型的数据 一般是在网页的 header 中定义的编码形式 content 返回的是 bytes 二级制型的数据 也就是说你如果想要提取文本就用
  • (20181206)在线计算GPS周、北斗周、周内日、年积日、简化儒略日

    介绍两个用于在线计算GPS周 周内日 年积日 简化儒略日的网站 网站一 http www gnsscalendar com 使用说明 网站二 http webapp geod nrcan gc ca geod tools outils ca

随机推荐

  • 根据相同主键,合并其他字段值,形成一条记录(oracle)

    将具有相同的主键INVT PROD ID值 其他列值CLAUSE MEMO CLAUSE TP CD BBCK DT使用 进行合并 形成一条记录 select INVT PROD ID MAX subStr CLAUSE MEMO 3 CL
  • Echarts折线图的部分修改

    x轴刻度的隐藏显示 xAxis axisTick show true false x轴的显示隐藏 xAxis axisLine show true false y轴去掉0刻度线 yAxis min 0 scale true axisLine
  • 基于openlayer4实现多个popu展示

    这个超出屏幕能自动平移 没有试 https blog csdn net qq 27186245 article details 82227282 https blog csdn net qq 27186245 article details
  • spring redis和缓存的应用

    spring redis和缓存的应用 1 在springboot项目中引入redis的包 即在pom xml文件中导入一下依赖 刷新maven可看见右侧依赖 2 使用缓存前在项目启动类 Demo1Application 中开启缓存 3 启动
  • 百度AI加速器-百度智能云千帆大模型平台专项首期开营

    9月2日 3日 百度AI加速器 百度智能云千帆大模型平台专项计划第一期加速营在百度大厦举办 经过为期一个月的招募 上海烯牛信息 北京谷器数据 北京烽火万家 上海知潜等15家AI创业企业入选并参与首期开营仪式 入营企业将获得百度智能云提供的一
  • xshell中文件操作的一些常见Linux命令

    1 文件操作的相关shell命令 文件名 执行这个文件 mv 文件名 文件位置 将文件移动到该位置 cp 文件1 文件2 复制文件1到文件2处 如果文件2没有会创 rm f 删除指定目录下的所有文件 rm rf filename 删除指定目
  • 计算机网络复习5----给主机配置IP地址

    在给主机配置IP地址时 哪一个能使用 A 29 9 255 18 B 127 21 19 109 C 192 5 91 255 D 220 103 256 56 答案为a 解析 B 127用于本地的回环测试不能 所以不能配置给主机 一旦出现
  • 掌握Python的X篇_27_Python中标准库文档查阅方法介绍

    前面的博文介绍了python的基本语法 模块及其导入方法 前人将各种方法封装成模块 库 函数供我们使用 如何去使用前人做好的东西 那就需要去查阅文档 今天就介绍python中官方文档的查阅方式 对于初学者而言 python自带的文档就已经足
  • Python入门最完整的基础知识大全【纯干货,建议收藏】

    前言 作为一个有着9年Python开发经验的老码农 今天我就为大家带来了Python的基础知识点 全篇干货 建议大家动动手指收藏起来 一定能够帮助你顺利入门Python 1 环境搭建 Python由荷兰数学和计算机科学研究学会的Guido
  • unity中,什么是万向锁?

    文章目录 一 介绍 二 解决unity万向锁的方法 一 介绍 在Unity中 万向锁 Gimbal Lock 是指使用欧拉角旋转时可能会出现的一种问题 导致物体的旋转变得不稳定或无法实现所期望的旋转 欧拉角旋转是通过绕三个轴 通常是x y和
  • 使用socket判断http请求或http响应的传输结束

    使用socket判断http请求或http响应的传输结束 先把header直到 r n r n整个地收下来 1 传输完毕就关闭connection 即recv收到0个字节 2 有内容 if Transfer Encoding chunked
  • 用户数据报协议UDP

    UDP的格式 载荷存放的是 应用层完整的UDP数据报 报头结构 源端口号 发出的信息的来源端口 目的端口号 信息要到达的目的端口 UDP长度 2个字节 16位 即UDP总长度为 2 16bit 2 10bit 2 6bit 1KB 64 6
  • lazyload ajax同步,jQuery lazyload 的重复加载错误以及修复方法

    分析代码也可以知道 最主要的原因是 写在页面上的 一经加载 就去向服务器申请图片地址 加载大图片 如果想实现原定的效果 则 写在页面上的待加载地址 必须不能是大图片的地址 而我们可以将真正的图片地址数据 存储在alt属性中 正确的例子如下
  • 批量转移(复制)文件夹内同类型文件(win10)

    1 打开cmd 2 批量转移 在cmd窗口中输入 move 空格 需要移动的文件后缀名所在的文件夹路径 需要移动的文件后缀名 空格 目标文件夹路径 例如 move E Pictures jpg E Work 3 批量复制 在cmd窗口中输入
  • ubuntu18.04的Android环境配置

    文章目录 1 安装Java jdk 2 安装Android studio 3 安装android sdk 4 安装 ndk 5 添加环境变量 1 安装Java jdk sudo apt get install openjdk 8 jre o
  • 获取文件夹中所有图片文件

    开发中常遇到要读取指定文件夹中的某一类文件 这时如果每次都以拼字符串地址的形式查找文件比较麻烦 分享两个读取指定文件夹中某一类文件的方法 以图片文件为例 1 以WWW方式进行加载 显示在RawImage上 2 以数据流形式读取文件 显示在R
  • 人工智能中的机器人教育

    现在有一种很普遍的思想 就是家长并不太关心孩子考的大学事都否是985和211 而且在意所录取的专业是否利于就业 格物斯坦温馨提示 这是一个很现实的问题 比如今几年兴起的人工智能专业 招生办的老师都说该专业毕业后平均月薪过万 而要学好这专业的
  • 入侵排查与响应-window和linux版

    目录 一 关于这方面的一些简单了解 1 我们的电脑为什么会被黑客入侵 2 黑客攻击的方式 二 window入侵排查 1 查看异常特征 2 系统账户安全 3 检测异常端口 进程 4 查看启动项 计划任务 服务 5 检查系统相关信息 三 lin
  • 2023年前端面试题集锦

    2023年又是行情惨淡的一年 为此我从 枇杷村IT面试宝典 小程序里收集了一些题目 更多题目可以扫下方二维码查看 现做个总结如下 1 在JavaScript中 0 0的结果是什么 结果为true 严格等于比较的是值和类型 对象除外 只要值和
  • react路由守卫、路由监听等总结

    1 路由守卫 拦截 react框架没有路由守卫功能 只能通过在路由里设置meta元字符实现路由拦截 路由拦截就是路由在发生变化时需要进行的拦截处理 2 监听路由变化 方式 1 路由下的内容组件通过history对象来进行监听 class H