UNPKG

cyra

Version:

single page application view engine

115 lines (114 loc) 3.28 kB
import { ModelsObject, ContextType } from '../types'; export interface BasePage { models: ModelsObject; context: ContextType; mode: string; transferedData: any; prepareForSwitch?: Function; } export declare class Page implements BasePage { models: ModelsObject; context: ContextType; mode: string; transferedData: any; path: string; copyIndex: number; switchRoute: Function; popAndSwitchRoute: Function; private entered; private leaved; private inTheActiveState; private containerCache; constructor(path: string); /** * 设置页面 title * @return {string} */ title(): string; /** * 调用 switchRoute 前执行,执行一些准备工作 * @param {Function} next * @param {string} toPath * @param {Function} destinationPagePerform */ prepareForSwitch(next: Function, toPath: string, destinationPagePerform: Function): void; /** * 指示每次进入 Page 时是否需要刷新 * @param {string} previousPath * @return {boolean} */ shouldReload(previousPath: string): boolean; /** * 模拟拦截点击返回按钮 * @param {Function} next * @param {Function} cancel * @param {string} toPath */ beforeLeaving(next: Function, cancel: Function, toPath: string): void; /** * 把当前页面的所有生命周期函数再执行一遍 */ reload(): void; /** * 获取页面的 HTML 容器 * @return {HTMLElement} */ readonly container: HTMLElement; /** * 通过它执行其他页面函数 * @param {string} funcName * @param {Array<any>} ...args */ callMethods(funcName: string, ...args: Array<any>): void; /** * 多页方案进入页面时执行上个页面的 destinationPagePerform * @param {string} funcName * @param {Array<any>} ...args */ multiCallMethods(funcName: string, ...args: Array<any>): void; /** * 顺序执行一组函数 * @param {Array<string>} executeSeq */ private execute(executeSeq); /** * 执行生命周期进入页面部分的函数 * @param {any} data * @param {number} index */ entering(data: any, index: number): void; /** * 执行生命周期离开页面部分的函数 * @param {any} data * @param {number} index */ leaving(): void; /** * 进入页面过程中显示页面的钩子 * @param {Function} next */ private appearing(next); /** * 离开页面过程中隐藏页面的钩子 * @param {Function} next */ private disappearing(next); /** * 视图切换动画进入效果 * @param {HTMLElement} container 即将进入的视图 container * @param {string} type 动画类型 */ private transitionIn(container); /** * 视图切换动画退出效果 * @param {HTMLElement} container 即将退出的视图 container * @param {string} type 动画类型 */ private transitionOut(container); /** * 批量设置容器样式 * @param {HTMLElement} element * @param {any} styles */ private setStyles(element, styles); }