Да, Angular поддерживает только 1 состояние одновременно. Есть несколько способов сохранить состояние, имея службу, которая содержит частные переменные с геттерами и сеттерами, сохраняя ее в localStorage / sessionStorage, строках запросов и т. д. У каждого из них есть свои плюсы и минусы, я бы изучил немного больше об этом на angular.io в разделе роутера.
Существует несколько классов, которые компонент может «реализовать», например, OnInit и OnDestroy, тогда у вас будут эти функции в коде, чтобы вы могли загружать / сохранять состояние при каждой загрузке / отпускании.
Пример:
export class ChatComponent implements OnInit, OnDestroy {
constructor(){}
onDestroy(){
//save logic goes here
}
onInit() {
//load logic goes here
}
}
Конечно, вы также можете загрузить состояние в конструкторе, но я считаю, что onInit лучше для производительности. Но не стесняйтесь поправлять меня.