tools-vue3
Version:
vue3 tools
74 lines (73 loc) • 1.94 kB
TypeScript
/**
* 路由工具-示例阅读README.md
*/
export default class CRouter {
/**
* 初始化路由列表
* @returns
*/
static init: (param: Partial<CRouterParam>) => {
array: any[];
map: any;
};
}
export type CRouterParam = {
/**
* 显示页面列表
*/
modules: any;
/**
* 补齐页面列表,如果modules的页面少于diffModules,将缺少的diffModules的页面添加到modules中
*/
diffModules?: any;
/**
* 根路径-默认'/src/views'
*/
root: string;
/**
* 页面配置
*/
children: Partial<CRouterParamChildren>[];
/**
* map地址勾子,用来处理map数据管理,参与处理path、component、children,一般留存标记方便children处理,比如正则pages下的所有路由,但是最终地址不使用pages,所以在这个勾子单独处理不对pages替换
*/
mapKeyPathHook?: (path: string) => string;
/**
* 路由地址修改钩子-用来修改最终的path地址使用名称 如/modules/home/index/index修改为/home
*/
pathHook: (path: string) => string;
/**
* 设置初始化信息,比如设置meta信息和title信息
*/
setInfoHook?: (item: CRouterParamChildren & {
[key: string]: any;
}) => void;
};
export type CRouterParamChildren = {
/**
* 页面路径-如/home/index
*/
path: string;
/**
* 页面组件-填vue文件地址
* @a 如/src/views/home/index.vue填/home/index
* @a 如/src/views/home/card.vue填/home/card
*/
component: string;
/**
* 跳转路径-如/home/index
*/
redirect: string;
/**
* 子路由
*/
children: Partial<CRouterParamChildren>[];
/**
* 子路由地址列表
*/
childrenList: string[];
/**
* 子路由包含正则
*/
childrenReg: string | string[] | RegExp | RegExp[];
};