@kloudsoftware/eisen
Version:
Declarative and expressive TypeScript framework for building modern web applications
40 lines (39 loc) • 1.42 kB
TypeScript
import { VNode } from './VNode';
import { AppEvent, ComponentFunctionHolder, VApp } from './VApp';
import { Props } from "./Props";
import { ComponentEventPipeline } from "./GlobalEvent";
export declare abstract class Component {
app: VApp;
$mount: VNode;
props: Props;
subComponents: Map<string, Component>;
componentEvent: ComponentEventPipeline;
abstract render(props: Props): VNode;
mount<T extends Component>(ctor: {
new (app: VApp): T;
}, app: VApp, node: VNode, key: string): T;
mountArgs<T extends Component>(ctor: {
new (app: VApp, ...args: any[]): T;
}, app: VApp, node: VNode, key: string, ...args: any[]): T;
rerender: () => void;
private forcedUpdate;
abstract lifeCycle(): ComponentProps;
emit: (name: string, data?: any) => void;
constructor(app: VApp);
}
export declare const reactiveWatchersKey: unique symbol;
export declare function reactive(): (target: any, key: PropertyKey) => void;
export declare abstract class ComponentProps {
mounted?(comp: Component): void;
remount?(comp: Component): void;
unmounted?(): void;
beforererender?(): void;
afterrerender?(): void;
}
export declare class ComponentHolder {
mounted: ComponentFunctionHolder;
remount: ComponentFunctionHolder;
unmounted: AppEvent;
component: Component;
constructor(props: ComponentProps, component: Component);
}