Después de investigar el problema durante unos días, parece que he llegado a un callejón sin salida.
Estoy lidiando con lo que asumí, era un escenario bastante común: después de que el usuario navega a una página determinada y realiza algunos cambios (contenido de un campo de entrada, desplazarse por los datos de la cuadrícula o incluso cambiar algunos valores de celda editables), navega a pagina diferente Cuando el usuario regresa a la página original, todos los cambios deben permanecer igual.
Ahora, eso significa que el cursor en el campo de entrada antes mencionado debe estar en el mismo lugar, la posición de desplazamiento en la cuadrícula y los valores de celda modificados, así como cualquier otro cambio realizado por el usuario, deben conservarse.
Las soluciones como el almacenamiento de datos en localStorage, el uso de servicios o incluso la estrategia de reutilización personalizada no funcionarán, porque será imposible guardar esa cantidad de información contenida en múltiples subcomponentes.
Actualmente, estoy considerando la manipulación de DOM, donde la plantilla procesada se moverá a un contenedor en el componente principal en el enlace onDestroy y se devolverá más tarde en onInit . Eso, por supuesto, es un intento de avemaría y se siente muy poco natural.
Espero que alguien haya tenido (y resuelto) este problema antes porque, como mencioné, parece un patrón de uso bastante común.
No hay muchas opciones para hacer esto en angular en comparación con React,
Lo que puedo recomendarle es que almacene todos los datos en el "entorno" como objeto y cuando el usuario vuelva a enrutar los datos del entorno.
Por lo general, hago esto, cuando se carga un componente, almaceno valores en objetos. Cuando se llama a la destrucción, todos estos objetos van al entorno bajo un objeto principal.
Cuando oninit llama, verifico si el objeto tiene valores y restauro la página a donde estaba.
Creo que está buscando Angular RouteReuseStrategy, donde Angular puede almacenar en caché el estado de algunas rutas, sin destruir el estado del componente, por lo que cada vez que el usuario visite la misma ruta, se usará una vista en caché, RouteReuseStrategy Docs .
También puedes consultar este artículo medio, implementando los métodos requeridos Medio
para una pequeña cantidad de datos podemos usar servicios o almacenamiento local como mencionaste para una gran cantidad de datos con los que podemos ir
NgRx
https://dzone.com/articles/angular-app-state-management-with-ngrx