cyra
Version:
single page application view engine
115 lines (114 loc) • 3.28 kB
TypeScript
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);
}