числе нужно и отписываться от http запросов, что позволит при дестрое компонента реджектнуть запросы, ведь по-сути они уже не нужны.
В целом является ли это хорошей практикой? Я такого нигде не встречал.
Да, от http запросов тоже нужно отписываться
Спасибо. Интересно, как стоит быть с ngrx эффектами в которых тоже мы делаем запросы из сервисов, или это зачастую игнорируется разработчиками?
ngrx вобще мешает использовать одну из важнейших фич rxjs - ленивость, единственный вариант - ставить между компонентом и ngrx фасад, который при подписке будет диспатчить load экшен, а при отписке - cancel
"ngrx вобще мешает"достаточно
Вот у меня именно между сторой и компонентом фасад. Но этот фасад выполняет роль диспатчера экшенов и селекторов. Но я в фасаде просто диспатчу экшен, от которого уже тригерится эффект. Не совсем понятно как мне в таком случае прикрутить cancel action. Но спасибо за задумку, попробую нагуглить.)
Не уверен, что адепты ngrx ценят лаконичность так же высоко )
Это одна из проблем, которую я бросил решать и отказался от ngrx вообще. Т.к. с одним запросом еще можно представить как это сделать, а параметризованными запросами становится совсем тоскливо..
Понял, спасибо. Не рационально это вообщем будет. Оставлю как есть.
можете пояснить что вы имеете в виду под ленивостью в данном контексте?
Скорее всего то, что все потоки создаются на старте приложения и тяжело это синхронизировать с жц компонентов. Типа на ините и дестрое экшены диспатчить часто приходится
Я имею в виду, что подход, при котором потребитель (компонент) декларирует потребность в некоторых данных, вместо того, чтобы императивно запрашивать их, более гибкий
А диспатч это не есть "декларирование потребности в данных"? Может я просто формулировку не понимаю)
Нет, диспатч - это команда "загрузи данные". Но это не зона ответственности компонента, надо загружать или не надо - это уже логика приложения. Идеоматический подход rxjs - подпишись когда данные нужны, отпишись когда не нужны - позволяет абстрагировать UI от логики и под капотом реализовать всё что нужно - загрузку, синхронизацию, кеширование, инвалидацию кеша, optimistic update и прочее
Обсуждают сегодня