路由配置示例
// routes/index.js
import { lazy } from 'react'
import { Navigate } from 'react-router-dom'
const Home = lazy(() => import('../pages/Home'))
const About = lazy(() => import('../pages/About'))
const Dashboard = lazy(() => import('../pages/Dashboard'))
const Login = lazy(() => import('../pages/Login'))
const routes = [
{
path: '/',
element: <Home />
},
{
path: '/about',
element: <About />
},
{
path: '/dashboard',
element: <PrivateRoute><Dashboard /></PrivateRoute>
},
{
path: '/login',
element: <Login />
},
{
path: '*',
element: <Navigate to="/" replace />
}
]
export default routes
// App.jsx
import { BrowserRouter, Routes, Route } from 'react-router-dom'
import { Suspense } from 'react'
import routes from './routes'
function App() {
return (
<BrowserRouter>
<Suspense fallback={<div>Loading...</div>}>
<Routes>
{routes.map((route, index) => (
<Route key={index} {...route} />
))}
</Routes>
</Suspense>
</BrowserRouter>
)
}