в нем не заводить с флагами (тк сабскрайб в сервисе же плохо, как ранее тут говорили), но завести надо
придумал стрим, на который если подпишусь — оно заведется
норм затея, я просто плоховато понимаю как надо делать, это ок способ?
по итогу в компоненте просто включаться будет фича (с отпиской, конечно же):
service.enableFooFeature$.subscribe()
ок?
а почему у вас стейт в конфиге о.о
А тебе точно нужны динамические флаги? Проще сделать флаги статичными, значение флага получить до инициализации приложения и прокинуть через DI-токен. Обычно флаги не меняются на лету, если очень нужно, можно просто страницу перезагрузить
Почему сабскрайб в сервисе это плохо ? По-моему норм
многие сервисы продайдят в рут или модуль, при таком условии он не уничтожается и не вызывается хук ngOnDestroy, обычно отписку делают в этом хуке. Полагаю, что поэтому
Так а зачем уничтожать если сервис ещё жив ? Если в глобальном сервисе нужно хранить состояние, то скорее всего оно будет часто надо
Причем в модуль - это тоже в рут (за исключением lazy модулей)
Лишь с разницей с тришейкинг
ну а если вызываешь подписку из компонента, который потом уничтожается?
Т. е если у тебя компонент в каком-то модуле, и ты делаешь 2 инстанса компоненты в другом компоненте, то у них будет один и тот-же инстанс сервиса ? Вроде нет же
Оказывается что нифига, lazy modul-и не уничтожаются автоматически https://github.com/angular/angular/issues/37095#issuecomment-854792361
в общем то логичное поведение, он же лейзи лоад, про уничтожение тут ничего не говорится. Когда чанки дополнительные подгружаем, мы же не ожидаем что они выгрузятся и потом снова будут грузиться. А если хочется сервис создавать каждый раз, так это к провайдерам компонента
Но компоненты то уничтожаются ,а не остаются.
логично, что загруженный код должен оставаться, но почему оперативная память должна заниматься неиспользуемым в данный момент модулем
потому что компоненты это вьюха, а модуль это дерево инжекторов и т.п. Может не правильно назвал, но надеюсь суть понятна
и что ? дерево инжекторов нельзя снести ?
а код не в памяти?
не обязательно
это же просто скачанный js-ник, незнаю как с ним браузер работает
да просто несколько переменных собрал в один объект, назвал криво
{ govno: variableField }
Про какие флаги? Включить или не включить — это не проблема Проблема в том, что для фичи нужна подписка… Ок ее так в компоненте включать ?
Обсуждают сегодня