olympus-r
Version:
一个力求简单易用的前端开发框架 #### 开发语言 TypeScript #### 核心架构 MVC #### 模块间通讯和解耦 采用事件机制,利用一个全局唯一的事件派发器进行模块间通讯,解耦模块间依赖 #### 表现层结构 使用桥接模式拆分接口与实现,达到一套核心驱动多套表现层的目的(目前支持DOM、Egret、PixiJS三种表现层),同时支持表现层的未来可扩展性 #### TypeScript装饰器注入 框架提供TypeScript装饰器注入功能,便捷获取托管对象。例如:
54 lines (53 loc) • 2.37 kB
TypeScript
import IConstructor from "../core/interfaces/IConstructor";
import "../libs/Reflect";
/**
* 包装一个类型,监听类型的实例化操作
*
* @export
* @param {IConstructor} cls 要监听构造的类型构造器
* @returns {IConstructor} 新的构造函数
*/
export declare function wrapConstruct(cls: IConstructor): IConstructor;
/**
* 如果传入的类有包装类,则返回包装类,否则返回其本身
*
* @export
* @param {IConstructor} cls 要获取包装类的类构造函数
* @returns {IConstructor}
*/
export declare function getConstructor(cls: IConstructor): IConstructor;
/**
* 监听类型的实例化
*
* @export
* @param {IConstructor} cls 要监听实例化的类
* @param {(instance?:any)=>void} handler 处理函数
*/
export declare function listenConstruct(cls: IConstructor, handler: (instance?: any) => void): void;
/**
* 移除实例化监听
*
* @export
* @param {IConstructor} cls 要移除监听实例化的类
* @param {(instance?:any)=>void} handler 处理函数
*/
export declare function unlistenConstruct(cls: IConstructor, handler: (instance?: any) => void): void;
/**
* 监听类型销毁(如果能够销毁的话,需要类型具有dispose方法),该监听不需要移除
*
* @export
* @param {IConstructor} cls 要监听销毁的类
* @param {(instance?:any)=>void} handler 处理函数
*/
export declare function listenDispose(cls: IConstructor, handler: (instance?: any) => void): void;
/**
* 监听某个实例的某个方法调用,并插入逻辑
*
* @export
* @param {IConstructor|any} target 要监听的对象类型或实例
* @param {string} name 要监听调用的方法名
* @param {(instance:any, args?:any[])=>any[]|void} [before] 执行前调用的回调,如果有返回值则替换掉正式方法执行时的参数
* @param {(instance:any, args?:any[], result?:any)=>any} [after] 执行后调用的回调,可以接收正式方法的返回值,如果after有返回值则替换掉正式方法的返回值
* @param {boolean} [once=true] 是否是一次性监听,默认是true
*/
export declare function listenApply(target: IConstructor | any, name: string, before?: (instance: any, args?: any[]) => any[] | void, after?: (instance: any, args?: any[], result?: any) => any, once?: boolean): void;