# router

## 介绍

路由相关，包含路由创建、路由结构和路由卫士

## index.ts

路由创建并导出，路由模式为`history`，public path 传入 env 中的`VITE_PUBLIC_PATH`，默认传入基础路由。

## model.ts

包含路由中所需要的 interface。

## routes

### 基础路由

基础路由中不需要做路由权限，不需要登录就能访问的页面，例如登录页、注册页、忘记密码等。

### 业务路由

业务路由需要用户登录并通过权限过滤以后能访问的页面。每一块业务单独一个文件，并且引入相应的 layout。

### meta 参数

-   title: 当前页面 title，必须，在菜单或者面包屑中展示此页面的 title。
-   icon：左侧菜单上的图标，从 UI 设计人员那得到 svg 格式的图片，按照命名规范重命名后存放在`assets/svg`中，在此处将 svg 文件名称传入即可，不需要后缀名。
-   permission：路由权限，与登录时返回的权限列表中的值相对应，当为空时不校验权限。
-   hidMenu：是否在菜单栏中隐藏菜单，默认为不隐藏。
-   hideChildrenInMenu：是否在菜单栏中隐藏子菜单，默认为不隐藏。
-   hideBreadcrumb：是否在面包屑中隐藏此菜单，默认为不隐藏。

## guard

路由卫士，在路由变化之前，验证 token 是否存在，如果不存在 token 则跳转到登录页，如果存在 token 则校验动态路由是否存在。
