@orca-fe/pocket
Version:
UI components by orca-team
26 lines (25 loc) • 854 B
TypeScript
/// <reference types="node" />
import EventEmitter from 'events';
export declare function shallowEquals(obj1: any, obj2: any): boolean;
export default class CommonStore<T extends Record<any, any>> {
protected events: EventEmitter<[never]>;
protected prevState: T;
protected state: T;
constructor(defaultState: T);
protected setState(state: Partial<T>): void;
/**
* 获取最新的状态
*/
getState(): T;
/**
* 在函数组件中订阅状态变化
*/
useState<SubState = T>(callback?: (state: T) => SubState): SubState;
/**
* 在函数中监听事件变化
* @param eventName 事件名称
* @param callback
*/
useEventListener(eventName: string, callback: (...args: any[]) => void): void;
useStateChangedListener(callback: (prevState: T, state: T) => void): void;
}