欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > React实现类似Vue的路由监听Hook

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

2024/10/24 3:21:46 来源:https://blog.csdn.net/yiguoxiaohai/article/details/142147051  浏览:    关键词: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);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com