У вас включен AdBlock или иной блокировщик рекламы.

Пожалуйста, отключите его, доход от рекламы помогает развитию сайта и появлению новых статей.

Спасибо за понимание.

В другой раз
DevGang блог о програмировании
Авторизоваться

Akita

Строгий менеджер состояний для приложений на 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);
  });
}

Теперь хранилище будет вызывать подписчиков только один раз после того как обновится полсдний.