Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що таке Akita?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Akita** - це бібліотека для керування станом в Angular, альтернатива NgRx і NGXS з акцентом на простоту, структуру та об'єктно-орієнтований підхід (Store, Query, Service). **Ключове:** Akita не вимагає reducers і actions, а побічні ефекти виконуються прямо в сервісах - менше шаблонного коду, ніж у NgRx.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**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: | | **Akita** | **NgRx** | |---|---|---| | Підхід | Класовий, простий | Функціональний, строгий | | Reducers | Немає | Обов'язкові | | Actions | Не обов'язкові | Обов'язкові | | RxJS | Використовується, але легко | Використовується багато | | Побічні ефекти | У сервісах | Через `Effects` | ### Висновок: **Akita** - це легка, зрозуміла альтернатива NgRx. Якщо хочеться керувати станом **без зайвої складності**, з гарною структурою, Akita може підійти ідеально.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.