import { useEffect } from 'react'; import { useNavigation } from '@remix-run/react'; import { loadingBarService } from './LoadingBar'; /** * 路由变化加载器组件 * 用于监听路由变化并控制全局加载进度条的显示 */ export function RouteChangeLoader() { // 获取路由转换状态 const navigation = useNavigation(); const isNavigating = navigation.state === 'loading' || navigation.state === 'submitting'; // 监听路由变化状态,控制加载进度条 useEffect(() => { // 当开始导航时,显示加载进度条 if (isNavigating) { loadingBarService.show(); } else { // 当导航完成时,隐藏加载进度条(带完成动画) loadingBarService.hide(); } }, [isNavigating]); // 这个组件不渲染任何内容,仅监听路由变化 return null; } export default RouteChangeLoader;