当前位置: 首页 > news >正文

React实现类似Vue的路由监听Hook

React实现类似Vue的路由监听Hook

  • 监听路由变化;
  • React Hook封装,返回回调函数,新旧路由为函数参数;

代码

import { useEffect, useRef } from 'react';
import { useHistory, useLocation } from 'react-router-dom';/*** 监听路由变化* @param callback*/
const useRouteChange = (callback: (prevLocation: string, newLocation: string) => void) => {const location = useLocation();const history = useHistory();const prevLocation = useRef(location.pathname);useEffect(() => {const unListen = history.listen(newLocation => {callback(prevLocation.current, newLocation.pathname);prevLocation.current = newLocation.pathname;});return () => {unListen();};}, [history, callback]);
};export default useRouteChange;

使用

  const routeChange = useCallback((prevLocation, newLocation) => {console.log(`RouteChange:From ${prevLocation} To ${newLocation}`);}, []);useRouteChange(routeChange);
http://www.lryc.cn/news/438313.html

相关文章:

  • Visual Studio打开项目的一些小技巧
  • 前端页面中使用 ppt 功能,并且可以随意插入关键帧
  • 机器学习:opencv--图像金字塔
  • linux安全软件Hydra使用教程
  • 【ShuQiHere】从晶体管到逻辑门:数字电路的构建之旅
  • PDF扫描版文字识别OCR
  • Synchronized由什么样的缺陷? Java Lock是怎么弥补这些缺陷的?
  • 联合仿真(FMI,FMU)资料收集
  • Android Radio2.0——动态列表回调(七)
  • 在conda虚拟环境中安装cv2(试错多次总结)
  • 【EI稳定,马来亚大学主办】2024年计算机与信息安全国际会议(WCCIS 2024,9月27-29)
  • 免费AI播客生成:notebooklm可以生成播客的两个发言人谈论的内容,从各种来源如研究论文、文章
  • “MIME 媒体类型“用来标识网络传输内容的格式标准
  • MySql的基础讲解
  • 类型转换等 面试真题
  • MySQL下载安装
  • golang实现正向代理http_proxy和https_proxy
  • 数字IC设计\FPGA 职位经典笔试面试--整理
  • Golang协程泄漏定位和排查
  • 【我的 PWN 学习手札】Unlink Attack
  • 算法笔试-编程练习-好题-04
  • 使用Rustup快速无缝升级Rust
  • pytorch qwen2-vl自定义数据全量微调
  • 切换淘宝最新npm镜像源是
  • 全国历年高考真题2008-2024
  • 【vue-media-upload】一个好用的上传图片的组件,注意事项
  • linux第一课(操作系统核心)
  • 【期末复习】软件项目管理
  • C# List定义和常用方法
  • 如何在实际应用中更好地利用字典功能提高开发效率?