Які основні елементи архітектури NgRx?
Основні елементи архітектури NgRx - це цеглинки, з яких будується керування станом. Кожен відповідає за свою частину:
Елементи
- Store (сховище)
- Це як великий глобальний об'єкт, де лежить увесь стан застосунку.
- Тільки для читання: напряму змінювати не можна.
- Компоненти отримують з нього дані через
select().
- Actions (дії)
- Прості об'єкти з описом того, що сталося.
- Приклади:
loginSuccess,addToCart,loadPosts. - Лише через
dispatch()можна ініціювати зміну стану.
- Reducers (редюсери)
- Чисті функції, які визначають: як змінюється стан за певного action.
- Отримують поточний стан і action → повертають новий стан.
- Selectors (селектори)
- Зручні функції, щоб діставати потрібні частини зі store.
- Наприклад:
selectCurrentUser,selectCartItems. - Дають змогу не смикати вручну весь store, а брати лише те, що потрібно.
- Effects (ефекти)
- Обробляють побічні дії: запити до API, збереження в localStorage тощо.
- Слухають
actions$, роблять щось і диспатчать нові actions за результатом.
Додатково:
- Entity Adapter
- Допомагає зручно працювати з колекціями: додавати, оновлювати, видаляти елементи.
- Особливо корисний для списків (наприклад, товари, пости).
- Feature state
- Поділ store за модулями.
- Кожен модуль може мати свою частину стану.
NgRx - це не магія. Це просто чітка послідовність: dispatch → effect (якщо потрібно) → reducer → новий стан → шаблон оновився.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.