Skip to main content

Component

Constructor

constructor();

Methods

load

load(): void;

Load this component and its children

onload

onload(): void;

Override this to load your component

unload

unload(): void;

Unload this component and its children

onunload

onunload(): void;

Override this to unload your component

addChild

addChild<T extends Component>(component: T): T;

Adds a child component, loading it if this component is loaded

removeChild

removeChild<T extends Component>(component: T): T;

Removes a child component, unloading it

register

register(cb: () => any): void;

Registers a callback to be called when unloading

registerEvent

registerEvent(eventRef: EventRef): void;

Registers an event to be detached when unloading

registerDomEvent

registerDomEvent<K extends keyof WindowEventMap>(el: Window, type: K, callback: (this: HTMLElement, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;

Registers an DOM event to be detached when unloading

registerDomEvent

registerDomEvent<K extends keyof DocumentEventMap>(el: Document, type: K, callback: (this: HTMLElement, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;

Registers an DOM event to be detached when unloading

registerDomEvent

registerDomEvent<K extends keyof HTMLElementEventMap>(el: HTMLElement, type: K, callback: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;

Registers an DOM event to be detached when unloading

registerScopeEvent

registerScopeEvent(keyHandler: KeymapEventHandler): void;

Registers an key event to be detached when unloading

registerInterval

registerInterval(id: number): number;

Registers an interval (from setInterval) to be cancelled when unloading Use {@link window.setInterval} instead of {@link setInterval} to avoid TypeScript confusing between NodeJS vs Browser API