Назад к вопросам
Middle
4
Что такое фасад в NgRx, какую роль выполнял?
Компании, где спрашивали
BLS-Soft
Ответ от нейросети
sobes.tech AI
Фасад в NgRx — это паттерн, который служит абстракцией над store, селекторами и экшенами. Его роль — упростить взаимодействие компонентов с состоянием, скрыть детали реализации и централизовать логику работы с состоянием.
Вместо того чтобы в каждом компоненте напрямую подписываться на селекторы и диспатчить экшены, фасад предоставляет методы и свойства, которые инкапсулируют эти операции. Это улучшает читаемость кода, облегчает тестирование и поддержку.
Пример фасада:
@Injectable({ providedIn: 'root' })
export class CounterFacade {
count$ = this.store.select(selectCount);
constructor(private store: Store) {}
increment() {
this.store.dispatch(increment());
}
decrement() {
this.store.dispatch(decrement());
}
reset() {
this.store.dispatch(reset());
}
}
Компонент использует фасад так:
@Component({ ... })
export class CounterComponent {
count$ = this.counterFacade.count$;
constructor(private counterFacade: CounterFacade) {}
onIncrement() {
this.counterFacade.increment();
}
onDecrement() {
this.counterFacade.decrement();
}
onReset() {
this.counterFacade.reset();
}
}