Cuando construyes URLs en tu aplicación, éstas pueden poseer parámetros dinámicos, por lo general, IDs para identificar registros, para capturarlos y manipularlos posteriormente.
Capturando parámetros de URL
Veamos a continuación dos maneras de capturar estos parámetros, una síncrona y otra asíncrona.
Captura de parámetros síncronos
El mejor lugar para capturar parámetros de URL, sean síncronos o no, es utilizando los hooks de ciclo de vida de Angular, más concretamente ngOnInit().
1. Creando rutas
Comienza creando tus rutas que permitan ingresar parámetros dinámicos de la siguiente manera:
Observa que ambas rutas apuntan al mismo componente, eso está bien. La diferencia estará en que la segunda ruta posee :categoryId y podrás capturar el parámetro utilizando ese mismo nombre.
2. Inyección de servicios necesarios
En el componente correspondiente, inyecta el servicio ActivatedRoute y también importa Params para tipar tus datos y manipularlos más fácilmente. Ambos imports provenientes de @angular/router.
Guardarás en la constante categoryId el valor del parámetro que lleva el mismo nombre que definiste en el archivo app-routing.module.ts. Luego podrás utilizarlos para realizar peticiones a un servidor o para lo que necesites.
Captura de parámetros asíncronos
Una URL puede cambiar y a veces es conveniente estar escuchando de forma activa los cambios en la misma.
Para que los Observables nos ayuden a estar atentos a estos cambios, Angular también nos permite suscribirnos a los cambios en los parámetros de URL de la siguiente manera.