Строгий менеджер состояний для приложений на javascript
Транзакции - это оптимизация для выполнения нескольких операций в магазине.
Допустим, нам нужно обновить одно и то же хранилище пару раз за один tick
:
update() {
this.store.update(..);
this.store.updateRoot(..);
this.store.setActive(1);
}
Это три раза, вызовет наши подписчики, чего мы хотим избежать. В таких случаях будут полезны транзакции Akita.
Вы можете использовать их в качестве декораторов:
import { transaction } from '@datorama/akita';
@transaction()
update() {
this.store.update();
this.store.updateRoot();
this.store.setActive(1);
}
Или как функции:
import { applyTransaction } from '@datorama/akita';
update() {
applyTransaction(() => {
this.store.update();
this.store.updateRoot();
this.store.setActive(1);
});
}
Теперь хранилище будет вызывать подписчиков только один раз после того как обновится полсдний.