Ваш компонент должен принимать вид @Input
объекта, который может воссоздать состояние.Вы должны обновить этот объект и сохранить его в сервисоподобном классе, чтобы сохранить его время жизни на всех страницах.Концепция, которую вы пытаетесь решить, аналогична той, к которой обращается ngrx store
.
Механизм хранения не сложен, то, что может быть в этом объекте, сложно.Если вы не хотите полагаться на кэшированные данные, то поток, который вы описали (т.е. зависимость от фильтров), должен быть сохранен для повторной инициализации компонента со свежими данными.Если вас не интересуют какие-то промежуточные обновления данных, тогда требуется хранение данных (и значений фильтра для согласованности представления), но вызовы API не будут выполняться.По моему мнению, вся магия должна быть вложена в onInit`.
РЕДАКТИРОВАТЬ
Как уже упоминалось в комментариях, рассмотрите шаблон дизайна сувениров от GoF как ссылку на ваш дизайн