react-router-dom中的几个hook

ops/2024/11/15 3:22:15/

useLocation

useLocation钩子返回当前的location对象。
useLocation相关的属性:

  1. pathname:当前URL的路径部分(如/about)
  2. search:URL的查询字符串(如?name=John)
  3. hash:URL的哈希片段(如#section1)
  4. state:用于存储与该位置关联的状态对象(通过导航时可以传递,如下)。
const link = '/customer/followUpRecord';
history.push({pathname: link,state: {refundId: refund_id,userId: user_id,userName: user_name,},
});
//followUpRecord.tsx
const location = useLocation();
//...
if (!(location.state as any).refundId) return;
//...

useHistory

useHistory钩子返回历史对象,它提供了一些方法用于导航和控制浏览历史。
useHistory主要用于编程式导航。
useHistory相关的属性:

  1. push(path,state):推送一个新的入口到历史堆栈,导航到一个新的URL。
  2. replace(path,state):替换历史堆栈中的当前条目,导航到一个新的URL,但不会创建的历史记录。
  3. go(n):在历史堆栈中前进或后退n步。
  4. goBack():相当于go(-1),后退一步。
  5. goForward():相当于go(1),前进一步。

useParams

类似于vue中的动态路由,获取动态路由后面拼接的参数,注意区分useLocation中的search参数

{path: '/pagegroup/:id',exact: true,component: _loadable(async() => (await import('./pagegroup')).PageGroup),
},
//pagegroup.tsx
const { id } = useParams() as any;

useRouteMatch(对react-route-dom版本有要求,v5.1.0 及之后)

当前是否匹配某路由,可选参数strict, end, sensitive等

import React from 'react';
import { useRouteMatch } from 'react-router-dom';function MyComponent() {const match = useRouteMatch({path:'/clientHeight',strict:true, //严格比配});return (<div>{match.ieExact ? "当前URL匹配 /clientHeight" : "当前URL不匹配 /clientHeight"}</div>);
}
export default MyComponent;

http://www.ppmy.cn/ops/132936.html

相关文章

【MySQL】深度学习与解析 : 库的操作知识整合

MySQL是一种开源的关系型数据库管理系统&#xff0c;被广泛应用于各种应用软件中。在深度学习中&#xff0c;MySQL可以用于存储和管理大量的数据&#xff0c;如训练数据、模型参数等。以下整理了一些MySQL库的操作知识&#xff1a; 1. 创建数据库&#xff1a; CREATE DATABA…

Python 自动化运维持续优化与性能调优

Python 自动化运维持续优化与性能调优 目录 ⚙️ 运维工具与系统的性能监控与优化&#x1f9d1;‍&#x1f4bb; 使用 Python 进行性能分析&#xff08;cProfile、line_profiler 等&#xff09;&#x1f4ca; 自动化性能测试与基准测试⚡ 高效资源调度与负载均衡策略&#x1…

项目功能--套餐预约占比饼形图

一、需求分析 会员可以通过移动端自助进行体检预约&#xff0c;在预约时需要选择预约的体检套餐。我们要通过饼形图直观的展示出会员预约的各个套餐占比情况。 二、代码实现 实现步骤&#xff1a; 步骤一&#xff1a;将echarts.js文件复制到工程的plugins目录下 步骤二&…

MyBatis几种SQL写法

目录 1. 批量操作:通过标签支持批量插入 2. 批量操作:通过标签支持批量更新 3. 批量操作&#xff1a;通过标签支持批量删除 4. 动态SQL 3. 多条件分支查询 4. SQL语句优化&#xff1a;使用标签避免多余的AND或OR关键字。 5. 注解方式使用MyBatis 6. 一对多 7. 多对一&…

卷积神经网络基础

卷积神经网络基础 一、卷积神经网络的提出 卷积神经网络的提出LeNet-5 二、卷积神经网络关键部件 卷积神经网络中的四个主要操作一个简单的卷积神经网络 三、卷积神经网络训练过程 1、前向传播阶段2、反向传播阶段训练过程 四、典型卷积神经网络 图像识别(分类)算法-LeNet-5 …

ubuntu 22.04 防火墙 ufw

Ubuntu&#xff08;22.04&#xff09;云主机SSH安全加固 https://blog.csdn.net/qq_44846097/article/details/141098092 ubuntu22.04防火墙策略 https://blog.csdn.net/sunyuhua_keyboard/article/details/139493464 Ubuntu 22.04 防火墙设置和开放端口命令 https://blog.c…

易考八股文之谈谈对sentinel的理解和作用?

在Java中&#xff0c;Sentinel&#xff08;哨兵&#xff09;是一个非常重要的组件&#xff0c;尤其在分布式服务架构和微服务环境中&#xff0c;它扮演着流量控制、熔断降级以及系统负载保护的关键角色。以下是对Sentinel的理解和作用的详细阐述&#xff1a; 一、Sentinel的理…

shell--常用命令

命令执行失败之后的操作 teee --version || { echo "tee command not found"; exit 1; } /dev/null /dev/null 对应的是一个空设备文件&#xff0c;任何写入这个文件的数据都将立即被销毁&#xff0c;而不是写到磁盘上。 if dpkg -s software-properties-common &g…