interface
Un objeto de configuración que define una única ruta. Un conjunto de rutas se recopilan en un Routes
matriz para definir una Router
configuración. El enrutador intenta hacer coincidir segmentos de una URL determinada con cada ruta, utilizando las opciones de configuración definidas en este objeto.
Ver más…
interface Route path?: string pathMatch?: string matcher?: UrlMatcher component?: TyperedirectTo?: string outlet?: string canActivate?: any[] canActivateChild?: any[] canDeactivate?: any[] canLoad?: any[] data?: Data resolve?: ResolveData children?: Routes loadChildren?: LoadChildren runGuardsAndResolvers?: RunGuardsAndResolvers
Descripción
Admite rutas estáticas, parametrizadas, de redireccionamiento y comodines, así como datos de ruta personalizados y métodos de resolución.
Para obtener información de uso detallada, consulte la Guía de enrutamiento.
Más información disponible en las Notas de uso …
Propiedades
Propiedad | Descripción |
---|---|
path?: string |
El camino al que enfrentarse. No se puede utilizar junto con un personalizado |
pathMatch?: string |
La estrategia de búsqueda de rutas, una de “prefijo” o “completa”. El valor predeterminado es ‘prefijo’. De forma predeterminada, el enrutador verifica los elementos de la URL desde la izquierda para ver si la URL coincide con una ruta determinada y se detiene cuando hay una coincidencia. Por ejemplo, ‘/ team / 11 / user’ coincide con ‘team /: id’. La estrategia de coincidencia de ruta “completa” coincide con la URL completa. Es importante hacer esto al redirigir rutas de ruta vacía. De lo contrario, debido a que una ruta vacía es un prefijo de cualquier URL, el enrutador aplicaría la redirección incluso cuando navegue al destino de la redirección, creando un bucle sin fin. |
matcher?: UrlMatcher |
Una función personalizada de coincidencia de URL. No se puede utilizar junto con |
component?: Type |
El componente para instanciar cuando la ruta coincide. Puede estar vacío si las rutas secundarias especifican componentes. |
redirectTo?: string |
Una URL a la que redirigir cuando la ruta coincida. Absoluto si la URL comienza con una barra inclinada (/); de lo contrario, es relativa a la ruta URL. Cuando no está presente, el enrutador no redirige. |
outlet?: string |
Nombre de un |
canActivate?: any[] |
Una matriz de tokens de inyección de dependencia que se utilizan para buscar |
canActivateChild?: any[] |
Una matriz de tokens DI utilizados para buscar |
canDeactivate?: any[] |
Una matriz de tokens DI utilizados para buscar |
canLoad?: any[] |
Una matriz de tokens DI utilizados para buscar |
data?: Data |
Datos adicionales definidos por el desarrollador proporcionados al componente a través de |
resolve?: ResolveData |
Un mapa de tokens DI utilizados para buscar resolutores de datos. Ver |
children?: Routes |
Una matriz de niño |
loadChildren?: LoadChildren |
Un objeto que especifica rutas secundarias cargadas de forma diferida. |
runGuardsAndResolvers?: RunGuardsAndResolvers |
Define cuándo se ejecutarán los guardias y resolutores. Uno de
|
Notas de uso
Configuración sencilla
La siguiente ruta especifica que al navegar a, por ejemplo, /team/11/user/bob
, el enrutador crea el componente ‘Equipo’ con el componente secundario ‘Usuario’ en él.
[ path: 'team/:id', component: Team, children: [ path: 'user/:name', component: User ] ]
Múltiples salidas
La siguiente ruta crea componentes hermanos con múltiples salidas. Al navegar a /team/11(aux:chat/jim)
, el enrutador crea el componente ‘Equipo’ junto al componente ‘Chat’. El componente ‘Chat’ se coloca en la salida ‘auxiliar’.
[ path: 'team/:id', component: Team , path: 'chat/:user', component: Chat outlet: 'aux' ]
Comodines
La siguiente ruta utiliza la notación comodín para especificar un componente del que siempre se crea una instancia, independientemente de hacia dónde navegue.
[ path: '**', component: WildcardComponent ]
Redireccionamientos
La siguiente ruta usa el redirectTo
propiedad para ignorar un segmento de una URL determinada al buscar una ruta secundaria.
Al navegar a ‘/ team / 11 / legacy / user / jim’, el enrutador cambia el segmento de URL ‘/ team / 11 / legacy / user / jim’ a ‘/ team / 11 / user / jim’, y luego crea una instancia del Componente de equipo con el componente secundario Usuario en él.
[ path: 'team/:id', component: Team, children: [ path: 'legacy/user/:name', redirectTo: 'user/:name' , path: 'user/:name', component: User ] ]
La ruta de redireccionamiento puede ser relativa, como se muestra en este ejemplo, o absoluta. Si cambiamos el redirectTo
en el ejemplo para el segmento de URL absoluto ‘/ usuario /: nombre’, la URL del resultado también es absoluta, ‘/ usuario / jim’.
Camino vacío
Las configuraciones de ruta de ruta vacía se pueden utilizar para crear instancias de componentes que no ‘consumen’ ningún segmento de URL.
En la siguiente configuración, al navegar a /team/11
, el enrutador crea una instancia del componente ‘AllUsers’.
[ path: 'team/:id', component: Team, children: [ path: '', component: AllUsers , path: 'user/:name', component: User ] ]
Las rutas de caminos vacíos pueden tener hijos. En el siguiente ejemplo, al navegar a /team/11/user/jim
, el enrutador crea una instancia del componente contenedor con el componente de usuario en él.
Tenga en cuenta que una ruta de ruta vacía hereda los parámetros y datos de su padre.
[ path: 'team/:id', component: Team, children: [ path: '', component: WrapperCmp, children: [ path: 'user/:name', component: User ] ] ]
Estrategia de emparejamiento
La estrategia de coincidencia de ruta predeterminada es ‘prefijo’, lo que significa que el enrutador verifica los elementos de la URL desde la izquierda para ver si la URL coincide con una ruta especificada. Por ejemplo, ‘/ team / 11 / user’ coincide con ‘team /: id’.
[ path: '', pathMatch: 'prefix', //default redirectTo: 'main' , path: 'main', component: Main ]
Puede especificar la estrategia de coincidencia de ruta ‘completa’ para asegurarse de que la ruta cubra toda la URL no consumida. Es importante hacer esto al redirigir rutas de ruta vacía. De lo contrario, debido a que una ruta vacía es un prefijo de cualquier URL, el enrutador aplicaría la redirección incluso cuando navegue al destino de la redirección, creando un bucle sin fin.
En el siguiente ejemplo, proporcionando el ‘completo’ pathMatch
La estrategia asegura que el enrutador aplica la redirección si y solo si navega a ‘/’.
[ path: '', pathMatch: 'full', redirectTo: 'main' , path: 'main', component: Main ]
Rutas sin componentes
Puede compartir parámetros entre componentes hermanos. Por ejemplo, suponga que dos componentes hermanos deben ir uno al lado del otro, y ambos requieren un parámetro de ID. Puede lograr esto utilizando una ruta que no especifique un componente en el nivel superior.
En el siguiente ejemplo, ‘MainChild’ y ‘AuxChild’ son hermanos. Al navegar a ‘parent / 10 / (a // aux: b)’, la ruta crea una instancia de los componentes secundarios principales y auxiliares uno al lado del otro. Para que esto funcione, el componente de la aplicación debe tener definidas las salidas primaria y auxiliar.
[ path: 'parent/:id', children: [ path: 'a', component: MainChild , path: 'b', component: AuxChild, outlet: 'aux' ] ]
El enrutador fusiona los parámetros, los datos y la resolución del padre sin componentes en los parámetros, los datos y la resolución de los hijos.
Esto es especialmente útil cuando los componentes secundarios se definen con una cadena de ruta vacía, como en el siguiente ejemplo. Con esta configuración, navegar a ‘/ parent / 10’ crea los componentes secundarios y auxiliares principales.
[ path: 'parent/:id', children: [ path: '', component: MainChild , path: '', component: AuxChild, outlet: 'aux' ] ]
Carga lenta
La carga diferida acelera el tiempo de carga de la aplicación al dividir la aplicación en varios paquetes y cargarlos a pedido. Para utilizar la carga diferida, proporcione el loadChildren
propiedad en el Route
objeto, en lugar del children
propiedad.
Dada la siguiente ruta de ejemplo, el enrutador cargará de forma diferida el módulo asociado a pedido utilizando el sistema de importación nativo del navegador.
[ path: 'lazy', loadChildren: () => import('./lazy-route/lazy.module').then(mod => mod.LazyModule), ];
Te invitamos a favorecer nuestro cometido ejecutando un comentario o valorándolo te lo agradecemos.