¿Es una buena práctica pasar datos con el enrutador angular a un componente o debería usar un servicio en su lugar?
En este momento, el componente obtiene los datos de esta manera:
this.account = activatedRoute.snapshot.data.accountHay varias formas de pasar datos a un componente angular.
Para objetos como la cuenta de usuario, usaría un proveedor (para tenerlo listo en el inicio del componente), un servicio (para compartir en la aplicación) o un protector (por ejemplo, si desea navegar cuando no está conectado).
Cuando quiero reutilizar el mismo componente en diferentes rutas y darle algunas pistas sobre su comportamiento, usaría los datos del enrutador.
Otro caso de uso que conocí es definir un estado de aplicación global usando las rutas activadas. Cada ruta puede definir sus datos, un servicio escucha los eventos del enrutador y almacena el estado fusionado. Me ayuda con aplicaciones grandes tener una configuración basada en rutas para la visibilidad de títulos, metas, barras de herramientas y menús, etc.
Si desea pasar datos a través de una ruta, aquí hay un ejemplo simple.
Haz que tu ruta se vea así:
{ path: 'todo', component: TodoComponent, data: { id:'1', name:"Todo Title"} }Luego, en su Componente puede hacer algo como esto:
ngOnInit() { this.activatedroute.data.subscribe(data => { this.todo = data; }) }¿Fue útil?