Строгий менеджер состояний для приложений на 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();
}
}
setPristine()
Устанавливает хранилизе в первоначальное состояние:
this.store.setPristine();
setDirty()
Устанавливает хранилище в использованое состояние, указывая, что оно не является нетронутым:
this.store.setDirty();
isPristine
Возвращает, является ли состояние хранилища нетронутым (метод set()
не был явно вызван с момента создания хранилища или когда последний раз вызывался setPristine()
).
if(this.query.isPristine) {}
isDirty
Возвращает, является ли состояние хранилища использованным (метод set()
или метод setDirty()
были явно вызваны с момента создания хранилища, или последний раз вызывался setPristine()
).
if(this.query.isDirty) {}