import React, { useEffect } from 'react'; import { Button, Card, Space, Typography } from 'antd'; import { useNavigate, useParams, useSearchParams } from 'react-router-dom'; import { reportEvent } from '@/firebase'; import { useSmartRouter } from '@/utils/routerUtils'; const { Title, Paragraph } = Typography; const RouteDemo: React.FC = () => { const navigate = useNavigate(); const params = useParams(); const [searchParams] = useSearchParams(); const smartNavigate = useSmartRouter(); useEffect(() => { console.log('✅ routeDemo组件挂载:componentDidMount'); reportEvent('routeDemoPage_show'); return () => { console.log('❌ routeDemo组件卸载:componentWillUnmount'); reportEvent('routeDemoPage_hide'); }; }, []); return (
路由示例
1. 路由参数 当前路由参数:{JSON.stringify(params)} 当前查询参数:{JSON.stringify(Object.fromEntries(searchParams))}
2. 路由跳转
3. 带参数的路由跳转
4. 重定向示例
使用 navigate 的 replace 选项(替换历史记录):
使用 /to 路由进行重定向:
使用 useSmartRouter 保持查询参数:
); }; export default RouteDemo;