Appearance
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);
}
}