Skip to main content

Що таке Akita?

Akita - це бібліотека для керування станом в Angular, альтернатива NgRx і NGXS, але з акцентом на простоту, структуру й об'єктно-орієнтований підхід.

Головне:

Akita = реактивний стан + класи + менше шаблонного коду.

Вона допомагає:

  • зберігати дані (у store),
  • оновлювати їх централізовано (через методи),
  • підписуватися на зміни (через select()).

Основні елементи Akita:

  1. Store
    • клас, де живе стан
    • ти задаєш початковий стан і керуєш ним
  2. Query
    • клас для читання даних зі store
    • зручно брати selectName(), selectCount() тощо
  3. Service
    • бізнес-логіка: завантаження з API, оновлення, видалення тощо
    • викликає методи store

Приклад:

ts
export interface Todo { id: number; title: string; } @StoreConfig({ name: 'todos' }) @Injectable() export class TodosStore extends Store<Todo[]> { constructor() { super([]); } }
ts
@Injectable() export class TodosQuery extends Query<Todo[]> { todos$ = this.select(); // підписка на всі todos constructor(protected store: TodosStore) { super(store); } }
ts
@Injectable() export class TodosService { constructor(private todosStore: TodosStore) {} add(todo: Todo) { this.todosStore.update(state => [...state, todo]); } }

Чим відрізняється від NgRx:

AkitaNgRx
ПідхідКласовий, простийФункціональний, строгий
ReducersНемаєОбов'язкові
ActionsНе обов'язковіОбов'язкові
RxJSВикористовується, але легкоВикористовується багато
Побічні ефектиУ сервісахЧерез Effects

Висновок:

Akita - це легка, зрозуміла альтернатива NgRx. Якщо хочеться керувати станом без зайвої складності, з гарною структурою, Akita може підійти ідеально.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.