DevGang
Авторизоваться

Akita

Строгий менеджер состояний для приложений на javascript

Управление начальным состоянием

При использовании хранилища сущностей, его начальное состояние является нетронутым, а когда вы вызываете store.set(), Akita меняет его на false. Вызов remove() снова устанавливает значение true.

Это можно использовать для определения наличия данных в хранилище, чтобы сэкономить на дополнительных запросах к серверу.

import { noop } from '@datorama/akita';

export class ProductsService {
  constructor( private productsStore: ProductsStore,
               private productsQuery: ProductsQuery,
               private productsDataService: ProductsDataService ) {
  }

  get(): Observable<Product[]> {
    const request = this.productsDataService.get().pipe(
      tap(response => this.productsStore.set(response))
    );

    return this.productsQuery.isPristine ? request : noop();
  }
}

API:

Store:

  • setPristine()

Устанавливает хранилизе в первоначальное состояние:

this.store.setPristine();
  • setDirty()

Устанавливает хранилище в использованое состояние, указывая, что оно не является нетронутым:

this.store.setDirty();

Query:

  • isPristine

Возвращает, является ли состояние хранилища нетронутым (метод set() не был явно вызван с момента создания хранилища или когда последний раз вызывался setPristine()).

if(this.query.isPristine) {}
  • isDirty

Возвращает, является ли состояние хранилища использованным (метод set() или метод setDirty() были явно вызваны с момента создания хранилища, или последний раз вызывался setPristine()).

if(this.query.isDirty) {}
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться