cyra
Version:
single page application view engine
80 lines (79 loc) • 2.1 kB
TypeScript
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;