Enrutamiento dinámico angular

Foto de Bruno Kelzer en Unsplash

En este punto, es posible que ya haya oído hablar de los componentes dinámicos, que son muy útiles para crear aplicaciones más dinámicas. Nos permiten cargar componentes dinámicamente en tiempo de ejecución según alguna lógica personalizada sin tener que crear un componente que esté inflado con un montón de ngIf.

Si aún no ha oído hablar de los componentes dinámicos, le sugiero que vea esta charla de Shmuela Jacobs en Angular Connect:

En mi trabajo diario, estoy construyendo un sistema que es como un CRM que administra varios productos diferentes que tienen una parte central común pero también algunas cosas específicas del producto. Para hacer que los componentes sean más reutilizables, introduje componentes dinámicos aquí y allá que cargan el componente específico del producto correcto según un token de inyección que especifica el producto activo actual. Todo fue agradable y bueno, hasta que traté de refactorizar un flujo de pasos que tiene algunos pasos comunes, pero también algunos pasos específicos del producto. Esto fue un problema porque el flujo de pasos no solo se basa en componentes, sino que también depende de las rutas. Lo que significa que el flujo de pasos de un producto puede tener algunos pasos adicionales, es decir, rutas, que son diferentes a los demás. El número de pasos también puede variar.

Una solución sucia sería crear un número fijo de rutas denominadas: paso 1, paso 2, paso 3 y luego cargar el componente dinámicamente en cada paso, pero dado que el número de pasos varía, esto no es posible. La solución adecuada es utilizar el enrutamiento dinámico .

Por lo general, definimos las rutas de un módulo de forma muy estática en un módulo de enrutamiento como este:

Una vez cargado el módulo no hay lógica que pueda interferir en la asignación estática de las rutas, por lo que siempre existirá la ruta de origen y nada más.

Ejemplo

Veamos un ejemplo muy simplificado que puede no tener mucho sentido pero tiene el propósito de demostrar cómo funciona el enrutamiento dinámico:

Queremos crear una aplicación con las siguientes rutas:

  • Inicio (estático)
  • 404 No encontrado (estático)
  • Día (dinámico; solo disponible entre las 6 a. m. y las 6 p. m.)
  • Noche (dinámico; solo disponible entre las 6 p. m. y las 6 a. m.)
  • Secreto (dinámico; probabilidad 50/50)

Ahora que definimos nuestras rutas en la sección de proveedores, podemos hacer uso del objeto de definición de proveedor useFactory . De esa manera podemos pasar una fábrica que contiene la lógica que decide cómo deben verse las rutas.

Breve recordatorio: Si cargó el módulo a las 5:59 a. m. y espera hasta las 6:01 a. m., la ruta del día no estará disponible ya que la configuración de la ruta ya se realizó antes. Esto significa que la lógica que define las rutas solo ocurre una vez cuando se carga el módulo.

Conclusión

Espero poder mostrarte algo nuevo e interesante. Si está interesado en Angular, consulte mis otras publicaciones de blog en Medium.

El ejemplo completo está disponible en mi GitHub:

Suggested posts

Financiamiento de la eliminación de carbono en el año fiscal 24

El desglose de las solicitudes de asignaciones de Carbon180 a través de vías

Financiamiento de la eliminación de carbono en el año fiscal 24

Por Alyson Lee, asesora de gestión de asuntos gubernamentales El proceso de asignaciones anuales del gobierno federal es fundamental para nuestros esfuerzos por financiar la eliminación de dióxido de carbono (CDR). Cada año, Carbon180 envía solicitudes a varias oficinas del Congreso para ayudar a guiar hacia dónde fluirán los dólares del próximo año.

Cómo salvar el planeta y ganar dinero

Cómo salvar el planeta y ganar dinero

¿Cuántas veces has tirado una botella de plástico, un tarro de cristal, una lata de aluminio o un paquete de energía verde sin pensarlo dos veces? ¿Cuántas veces has deseado poder obtener algo a cambio de reciclarlos? Si usted es como la mayoría de las personas, la respuesta probablemente sea muchas veces. El reciclaje a menudo se ve como una molestia, una tarea o un deber que no brinda ningún beneficio inmediato o tangible.

Related posts

La persecución de los cristianos: el crimen de odio del que no hablamos

Olvídate de la islamofobia: los cristianos (y los judíos) son las principales víctimas de los delitos de odio religioso.

La persecución de los cristianos: el crimen de odio del que no hablamos

Cualquier mente racional sabe que los círculos políticos y mediáticos están dominados por la izquierda, incluso por la extrema izquierda, una situación que crea un desequilibrio en el discurso político. En el campo de la religión, este desequilibrio es claramente visible: los periódicos y las redes de izquierda no se apresuran a defender la fe cristiana.

Por qué algunos freelancers están fingiendo sus vidas

Por qué algunos freelancers están fingiendo sus vidas

Hace poco estuve en Linkedin, la red social profesional más grande del mundo, y encontré publicaciones de diseñadores independientes a los que sigo que me llamaron la atención. Todos publicaron fotos desde aviones, en la playa con sus computadoras portátiles, desde piscinas y oficinas con vistas increíbles.

La mentira del vaquero

Cómo las megacorporaciones vendieron a los estadounidenses una falsedad fornida

La mentira del vaquero

Es una mañana brillantemente dorada en las ondulantes colinas del oeste, mientras los primeros rayos del sol iluminan la hierba escarchada de las llanuras. Una manada de ganado Angus plácido, negro azabache y enorme, se recorta contra el amanecer mientras avanzan por un sendero trillado hacia un lugar que todos conocen bien; la barra de desayuno

¿Es el arte alguna vez apolítico?

¿Es el arte alguna vez apolítico?

Ayer cerramos la puerta del Festival de la Canción de Eurovisión de este año con una gran final brillante y caótica en la que la cantante sueca Loreen se llevó a casa el trofeo, convirtiéndose en la primera mujer en ganar dos veces y devolviendo la corona a Suecia 50 años después de que ABBA ganara la competencia. con “Waterloo”. Se convirtieron en uno de los actos más grandes en el canon de la música pop.