aw-react-router-helper
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

React Router Helper

类似 react-router-config,可以以配置形式生成路由

Install

npm install --save aw-react-router-helper

Types

type RoutesRenderFun = () => React.ReactNode;
 
interface RouteState<Meta = {}> {
  path: string;
  meta: Meta;
  url: string;
}
 
interface RouteConfig<Meta = {}> {
  // 路径
  path: string;
  // 存储一些路由的额外信息
  meta?: Meta;
  // 重定向 route path
  redirect?: string;
  // 路由的展示组件 (二选一,且必须有其一)
  component?: React.ComponentType<RouteConfigComponentProps<any, Meta>> | React.ComponentType;
  render?: (props: RouteConfigComponentProps<any, Meta>) => React.ReactNode;
  // 中间件 (路由渲染的拦截器)
  middlewares?: RouteMiddlewareFunc<Meta>[];
  // 子路由
  routes?: RouteConfig<Meta>[];
}
 
interface RouteConfigComponentProps<Params extends {[K in keyof Params]?: string } = {}, Meta = {}> extends RouteComponentProps<Params> {
  // 路由配置信息
  route: RouteConfig<Meta>;
  // 渲染子路由的方法
  renderRoutes: RoutesRenderFun;
}
 
type RouteMiddlewareFunc<Meta = {}> = (params: RouteState<Meta>) => undefined | JSX.Element | string;
 
type RouteLoadOptions<Meta = {}> = {
  configs: RouteConfig<Meta>[];
  middlewares?: RouteMiddlewareFunc<Meta>[];
}
 
interface IRouterHelper<Meta> {
  load(options: RouteLoadOptions<Meta>): IRouterHelper<Meta>;
  render(routes?: RouteConfig<Meta>[]): JSX.Element | null;
}

Examples


Readme

Keywords

none

Package Sidebar

Install

npm i aw-react-router-helper

Weekly Downloads

0

Version

1.0.2

License

ISC

Unpacked Size

14 kB

Total Files

14

Last publish

Collaborators

  • away0x