UNPKG

cyra

Version:

single page application view engine

80 lines (79 loc) 2.1 kB
import { Route } from './Route'; import { ModelsObject, RouteData, ContextType } from '../types'; declare class Router { models: ModelsObject; context: ContextType; mode: string; private pathHandler; private defaultPath; private isPoping; constructor(root: string, defaultPath: string, mode: string); /** * 通过 path 获取 Route * @param {string} path * @return {Route} */ private getRouteByPath(path); /** * 通过 path 获取 Page * @param {string} path * @param {number} copyIndex * @return {Page} */ private getPageByPath(path, copyIndex); /** * 定义路由 * @param {RouteData} routes * @return {Array<Route>} */ defineRoute(routes: RouteData): Array<Route>; /** * 初始化 Router */ private initRouter(); /** * 开始路由 */ startRouting(): void; /** * 更新 URL * @param {string} path * @param {number} copyIndex * @param {any} data */ private updatePath(path, title, copyIndex, data, isShadow); /** * 模拟拦截用户点击返回按钮 */ private cancelBack(); /** * 在 switchPage 之前执行,提供拦截方式 * @param {Route} matchedRoute * @param {UrlObject} urlObject */ private beforeSwitchPage(matchedRoute, urlObject); /** * 切换页面,设置 context * @param {Route} matchedRoute * @param {UrlObject} urlObject */ private switchPage(matchedRoute, urlObject); /** * Page 执行跳转 * @param {string} path * @param {any} data */ switchRoute(path: string, data?: any, copyIndex?: number, isShadow?: boolean): void; /** * Page pop 页面然后执行跳转 * @param {number} popValue * @param {string} path * @param {any} data */ popAndSwitchRoute(popValue: number, path: string, data?: any, copyIndex?: number): void; /** * 设置默认插件辅助方法 */ initHook(): void; } export default Router;