54 lines
1.1 KiB
TypeScript
54 lines
1.1 KiB
TypeScript
import "./assets/less/common.less";
|
|
import { Route, Routes, useNavigate } from "react-router-dom";
|
|
import User from "./view/User";
|
|
import Home from "./view/Home";
|
|
import { Guard } from "./router/Guard";
|
|
|
|
function App() {
|
|
const navigate = useNavigate();
|
|
|
|
const routerList = [
|
|
{
|
|
path: "/",
|
|
element: <Home />,
|
|
name: "首页",
|
|
},
|
|
{
|
|
path: "user",
|
|
element: <User />,
|
|
name: "用户",
|
|
},
|
|
];
|
|
|
|
return (
|
|
<>
|
|
<header>header</header>
|
|
<div>
|
|
<aside>
|
|
<ul>
|
|
{routerList.map((router) => (
|
|
<li key={router.path}>
|
|
<a onClick={() => navigate(router.path)}>{router.name}</a>
|
|
</li>
|
|
))}
|
|
</ul>
|
|
</aside>
|
|
<main>
|
|
<Routes>
|
|
{routerList.map((router) => (
|
|
<Route
|
|
key={router.path}
|
|
path={router.path}
|
|
element={<Guard>{router.element}</Guard>}
|
|
/>
|
|
))}
|
|
<Route path="*" element={<span>404</span>} />
|
|
</Routes>
|
|
</main>
|
|
</div>
|
|
</>
|
|
);
|
|
}
|
|
|
|
export default App;
|