Skip to content

Stores

Система сторов построена на основе EventEmitter и предназначена для хранения и отслеживания изменений в любой части кода. Pub/sub логика EventEmitter отлично сочетается с идеалогией сторов.

Core библиотека предоставляет 2 базовых стора:

И менеджер сторов, который позволяет создавать и управлять пуллом сторов.

Однако этот набор может быть легко расширен за счет базового для всех сторов класса Store. На его основе можно созадть собственный обработчик состояния, например:

ts
export class PowStore extends Store<number> {
	#value?: number;
	#pow: number;

	constructor(value: number | undefined, pow = 2) {
		super();
		this.#pow = pow;
		this.#value = value;
	}

	public set(value: number) {
		const oldValue = this.#value;
		this.#value = value;
		this.emit("change", this.#value, oldValue);
	}

	public get() {
		return Math.pow(this.#value, this.#pow);
	}
}