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

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

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

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

Akita

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

Поделится

API

Create, Update, Delete

  • set(entities: E[] | HashMap<E>, entityClass?: Newable<E>)

Заменить текущую коллекцию предоставленной коллекцией.

this.store.set([Entity, Entity]);

/** Или вы можете передать объект */
this.store.set({1: Entity, 2: Entity});

Обратите внимание, что если вы передаете объект, Akita не гарантирует порядок полученных данных.

  • createOrReplace(id: ID, entity: E)

Создаёт или заменяет объект в хранилище:

this.store.createOrReplace(id, Entity);
  • add(entities: E[] | E)

Добавляет объект или объекты в магазин:

this.store.add([Entity, Entity]);
this.store.add(Entity);

this.store.add([Entity, Entity], { prepend: true });
this.store.add(Entity, { prepend: true });
  • update(id: ID | ID[] | null, newStateFn: ((entity: Readonly<E>) => Partial<E>) | Partial<E>)

Обновляет сущность или сущности в хранилище:

this.store.update(3, {
  name: 'New Name'
});

this.store.update((e) => e.name === 'Netanel', {
  name: 'New Name'
});
this.store.update(3, entity => {
  return {
    config: {
      ...entity.filter,
      date
    }
  }
});
this.store.update([1,2,3], {
 name: 'New Name'
});
/** Обновить все */
this.store.update(null, {
  name: 'New Name'
});
  • updateAll(state: Partial<E>)

Псевдоним для update(null).

this.store.updateAll({completed: true});
  • updateRoot(newStateFn?: ((state: Readonly<S>) => Partial<S>) | Partial<S>)

Обновляет корневое состояние (данные, которые являются внешними по отношению к объектам):

this.store.updateRoot({
  metadata: 'new metadata'
});
this.store.updateRoot(state => {
  return {
    metadata: {
    ...state.metadata,
    key: 'new value'
  }
 }
});
  • remove(id?: ID | ID[] | ((entity: Readonly<E>) => boolean)

Удаляет одну или несколько сущностей из хранилища:

this.store.remove(5);

this.store.remove([1,2,3]);

this.store.remove(e => e.name === 'Netanel');

this.store.remove();
  • upsert(id, entityOrFunc)

Вставляет или обновляет объект.

this.todosStore.upsert(id, {
 isOpen: true
});

this.todosStore.upsert(id, entity => ({
  isOpen: !entity.isOpen
}));
  • setLoading(loading = false)

Обновляет состояние загрузки хранилища. Начальное значение устанавливается в true и переключается в false, когда вы вызывете store.set(). Это может пригодиться для указания загрузки:

this.store.setLoading(true);
  • setError(error: any)

Обновляет состояние ошибки хранилища:

this.store.setError('Example of error');
  • destroy()

Уничтожить хранилище.