Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Як можна керувати станом за допомогою сервісів?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Керувати станом через сервіси - це простий і потужний спосіб тримати дані під контролем без складних бібліотек: сервіс зберігає змінні, надає методи для їх зміни й віддає значення компонентам напряму або через потік. **Ключове:** сервіс стає єдиним сховищем і диспетчером, де все прозоро, реактивно й під контролем.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняКерувати станом через сервіси - це **простий і потужний спосіб тримати дані під контролем** без складних бібліотек. --- ### Що робить сервіс "керуючим станом": Він: - зберігає змінні (наприклад, `user`, `cart`, `isLoading`) - надає методи для зміни цих змінних - віддає значення компонентам - напряму або через потік (`BehaviorSubject`) --- ### Приклад: ```ts @Injectable({ providedIn: 'root' }) export class CartService { private cartItems = new BehaviorSubject<Product[]>([]); cart$ = this.cartItems.asObservable(); add(item: Product) { const current = this.cartItems.value; this.cartItems.next([...current, item]); } clear() { this.cartItems.next([]); } } ``` Компонент просто підписується: ```ts this.cartService.cart$.subscribe(items => this.cart = items); ``` --- ### Що в підсумку: - Компоненти **не зберігають логіку і дані в собі** - вони просто відображають - Усі зміни йдуть централізовано - Стан живе, навіть якщо компонент знищено - Підписники автоматично отримують оновлення --- **Висновок:** Сервіс стає **єдиним сховищем і диспетчером**, де все прозоро, реактивно і під контролем. Для 90% завдань цього вже достатньо.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.