Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

139
Vistas
Cómo hacer que la ruta predeterminada muestre una aplicación en un solo spa sin agregar la función activeWhen

Estoy usando el marco de un solo spa y la mayoría de las cosas van bien.

Usando el diseño de spa único, he agregado una ruta predeterminada que debe mostrarse cuando la URL no coincide con una ruta que he definido. Esto funciona correctamente si el hijo de la raíz predeterminada es solo un nodo/s html, por ejemplo

 <template id="single-spa-layout"> <single-spa-router mode="history" base="/"> <route default> <h1>404 - No page mathes the URL</h1> </route> <route path="login"> <application name="@my-company/mf-login"></application> </route> </single-spa-router> </template>

Mi problema es que si quiero enrutar a una aplicación en particular (mf-default en mi caso) en la raíz predeterminada, no se muestra a menos que registre mi aplicación y proporcione la función activeWhen() tal como lo haría con todas mis otras aplicaciones. p.ej

 <template id="single-spa-layout"> <single-spa-router mode="history" base="/"> <route default> <application name="@my-company/mf-default"></application> </route> <route path="login"> <application name="@my-company/mf-login"></application> </route> </single-spa-router> </template>
 registerApplication({ name: "@my-company/mf-default", app: () => { return System.import("@my-company/mf-default"); }, activeWhen: () => shouldBeActive, });

No estoy seguro de por qué necesitaría proporcionar la lógica para cuándo se debe mostrar la aplicación 404 predeterminada (en mi ejemplo, esta es la parte shouldBeActive), ya que ya sabe si la URL coincide con una ruta conocida, como lo demuestra el hecho de que mi El primer ejemplo funciona y solo muestra ese HTML siempre que la ruta realmente no coincida.

¿Alguien puede aclararme cómo debería funcionar esto, por favor? Definitivamente necesito mostrar algo más que HTML codificado para un 404: necesito mostrar una aplicación específica, en este caso, mi aplicación predeterminada mf.

Debo decir que si configuro shouldBeActive en verdadero, entonces se muestra la aplicación 404, por lo que no hay ninguna limitación técnica que la prohíba. Pero no entiendo por qué necesito proporcionar la función activeWhen() para este caso, ya que el marco ya sabe cuándo una ruta no coincide.

Incluso tener acceso a la función que usa el marco para calcular un routeMatch ayudaría, ya que podría reutilizarlo.

Cualquier ayuda en esto sería muy apreciada. Estoy seguro de que una respuesta sobre esto también podría ser útil para otros. Gracias

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda