cyra-pure
Version:
single page application view engine
59 lines (58 loc) • 1.79 kB
TypeScript
import { Action } from './Action';
import { ModelsObject, ActionData, ContextType } from '../types';
export interface BasePage {
id: () => string;
data: any;
models: ModelsObject;
context: ContextType;
transferedData: any;
defineActions?: () => void;
prepareForAction?: Function;
toPageAppear?: (next: Function) => void;
fromPageDisappear?: (next: Function) => void;
performAction: (actionID: string, data?: any, index?: number) => void;
}
/** Class representing a page. */
export declare class Page implements BasePage {
data: any;
models: ModelsObject;
context: ContextType;
transferedData: any;
copyIndex: number;
actions: ActionData;
toPageAppear: (next: Function) => void;
fromPageDisappear: (next: Function) => void;
private entered;
private leaved;
private inTheActiveState;
private containerCache;
/**
* Create a page.
* @constructor
*/
constructor();
id(): string;
title(): string;
defineActions(): void;
prepareForAction(next: Function, action: Action): void;
shouldReload(currentAction: Action): boolean;
beforeLeaving(next: Function, cancel: Function, action: Action): void;
/**
* perform a action.
* @param {action} actoin - Action对象.
* @param {object} data - The transform data.
*/
performAction(toPageID: string, data?: any, index?: number): void;
/**
* reload a page
* 把当前页面的所有生命周期函数再执行一遍
*/
reload(): void;
container: HTMLElement;
private updateHash(pageID, index, data);
private execute(executeSeq);
entering(data: any, index: number): void;
leaving(): void;
private appearing(next);
private disappearing(next);
}