跳到主要内容

应用启动与路由

createApp

创建应用实例,并负责把 App 渲染到 #root

推荐场景:

  • 应用唯一入口 main.ts
  • 在测试或独立挂载时手工控制渲染和卸载

参数:

参数类型说明
strictModeboolean是否包裹 StrictMode
useRouterContextUseRouterContext额外路由上下文 hook

实例方法:

方法说明
render(props)渲染应用
unmount()卸载应用

createApiClient

core.createApiClient() 之上接入了 token 存储、未认证处理、权限不足处理和全局消息提示。

关键配置:

字段说明
http.baseUrlAPI 根地址
http.timeout超时时间
http.okCode成功业务码
http.tokenExpiredCodetoken 过期业务码
http.refreshToken刷新 token 函数
query.staleTimequery 新鲜时间
query.gcTimequery 缓存回收时间

createRouter

创建 VEF 约定好的 TanStack Router 实例。

参数:

参数类型说明
history"hash" | "browser"历史模式
routeTreeAnyRouteWithContext<RouterContext>路由树
contextRouterContext路由上下文

默认内建能力:

  • pending / error / not-found 组件
  • 进度条事件
  • 标签页同步
  • 未认证和无权限事件响应

createRootRouteOptions

根路由辅助,主要负责文档标题策略。

参数:

参数类型说明
appTitlestring应用标题前缀

createLayoutRouteOptions

后台布局页的核心辅助函数。

推荐场景:

  • 所有需要登录后访问的业务页
  • 统一加载用户信息与菜单
  • 页面守卫

关键参数:

参数类型说明
fetchUserInfo() => Awaitable<UserInfo>拉取用户信息
titlestring布局标题
onLogout() => Awaitable<void>退出登录

createLoginRouteOptions

登录页辅助。负责:

  • 校验 redirect
  • 登录后跳回原页
  • 已登录时避免重复进入登录页

createAccessDeniedRouteOptions

无权限页辅助。负责无权限页初始导航策略。

事件 helper

导出用途
dispatchCustomEvent派发自定义事件
eventEmitter全局事件总线
reloadPage统一刷新页面
handleClientLogout本地登出收尾

路由常量

常量说明
LOGIN_ROUTE_PATH / LOGIN_ROUTE_ID登录路由
INDEX_ROUTE_PATH / INDEX_ROUTE_ID首页路由
ACCESS_DENIED_ROUTE_PATH / ACCESS_DENIED_ROUTE_ID无权限路由