import ErrorPage from "hooks/Error"; import layout from "themes/echoes/layout"; import article from "themes/echoes/article"; import about from "themes/echoes/about"; import { useLocation } from "react-router-dom"; import post from "themes/echoes/post"; import { memo, useCallback } from "react"; const args = { title: "我的页面", theme: "dark", nav: 'indexerroraboutpost', } as const; const renderLayout = (children: React.ReactNode) => { return layout.render({ children, args, }); }; const Routes = memo(() => { const location = useLocation(); const path = location.pathname.split("/")[1]; // 使用 useCallback 缓存渲染函数 const renderContent = useCallback((Component: any) => { return renderLayout(Component.render(args)); }, []); // 根据路径返回对应组件 if (path === "error") { return renderContent(ErrorPage); } if (path === "about") { return renderContent(about); } if (path === "post") { return renderContent(post); } return renderContent(article); }); export default Routes;