注意路由表文件后缀必须为
.tsx
,否则组件会提示xx指的是一个值,但在此处用作类型
路由表
// 代码示例
import Index from './Index';
import Home from './Home';
import Signin from './signIn';
import Register from './register';
import ShoppingCart from './ShoppingCart';
import Detail from './Detail';
// 定义数组每一项的接口
export interface IRoute {
caseSensitive?: boolean
children?: Array<IRoute>
element?: React.ReactNode
index?: boolean
path?: string
auth?: boolean
}
const routes:Array<IRoute> = [
{
path:'/',
element:<Index/>
},
{
path:'/index',
element:<Index/>
},
{
path:'/home',
element:<Home/>
},
{
path:'/signin',
element:<Signin/>
},
{
path:'/register',
element:<Register/>
},
{
path:'/shoppingCart',
element:<ShoppingCart/>
},
{
path:'/detail',
element:<Detail/>
},
{
path:'*',
element:<h1>404</h1>
}
]
export default routes
生成
// 引入hook
import { useRoutes } from 'react-router-dom';
// 生成路由
// 根据路由表生成对应的路由规则
const element = useRoutes(routes)
...
<div>
{
element
}
</div>
...