Router Flashcards

1
Q

¿Qué directiva permite establecer la clase de la ruta activa?

A

Respuesta: routerLinkActive

Ejemplo:

<a>Bob</a>
<a>Bob</a>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué directiva permite configurar las opciones de la ruta activa?

A

Respuesta: routerLinkActiveOptions

Ejemplo:

<a>Bob</a>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cómo navegar de forma programática?

A

Repuesta: router.navigate

Ejemplo:
import { Router } from ‘@angular/router’;

constructor(private router: Router) {}

gotoItems(hero: Hero) {
this.router.navigate([‘/heroes’, { id: heroId }]);
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cómo navegar de forma programática a una ruta relativa?

A

Repuesta: router.navigate([‘items’], { relativeTo: this.route });

Ejemplo:

constructor(
private route: ActivatedRoute,
private router: Router ) {}

gotoItems() {
this.router.navigate([‘items’], { relativeTo: this.route });
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cómo recuperar los parámetros de una ruta de forma estática?

A

Respuesta: route.snapshot.params

Ejemplo:

constructor(route: ActivatedRoute) {
const id: string = route.snapshot.params.id;
const name: string = route.snapshot.params[‘name’];
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo recuperar los parámetros de una ruta de forma dinámica?

A

Respuesta: route.params.subscribe

Ejemplo:

ngOnInit() {
  this.route.params.subscribe(params => {
    this.name = params['name'];
  });
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué directiva permite añadir query params a la ruta establecida por [routerLink]?

A

Respuesta: [queryParams]

Ejemplo:

<a>
link to user component
</a>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cómo navegar de forma programática a una ruta estableciendo query params?

A

Respuesta: router.navigate([‘/products’], { queryParams: { order: ‘popular’ } });

Ejemplo:

goProducts() {
this.router.navigate([‘/products’], { queryParams: { order: ‘popular’ } });
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Es necesario gestionar manualmente la desubscripción de los observables params y queryParams del objeto ActivatedRoute?

A

No, la desubscripción es gestionada automáticamente por Angular.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo recuperar los query params de una ruta de forma estática?

A

Repuesta: route.snapshot.queryParams

Ejemplo:

constructor(route: ActivatedRoute) {
const name: string = route.snapshot.queryParams[‘name’];
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Cómo recuperar los query params de una ruta de forma dinámica?

A

Respuesta: route.queryParams.subscribe

Ejemplo:

constructor(private route: ActivatedRoute) {}

ngOnInit() {
  this.route.queryParams.subscribe(params => {
    console.log(params.name);
  });
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Cómo definir “child routes”?

A

Respuesta: Propiedad children de Route

Ejemplo:

export const routes: Routes = [
{ path: ‘’, redirectTo: ‘product-list’, pathMatch: ‘full’ },
{ path: ‘product-list’, component: ProductList },
{ path: ‘product-details/:id’, component: ProductDetails,
children: [
{ path: ‘’, redirectTo: ‘overview’, pathMatch: ‘full’ },
{ path: ‘overview’, component: Overview },
{ path: ‘specs’, component: Specs }
]
}
];

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Cómo preservar los query params al cambiar de ruta (sin añadir nuevos parámetros)?

A

Respuesta: queryParamsHandling: “preserve”

Ejemplo:

this.router.navigate([‘/view2’], { queryParamsHandling: “preserve”
});

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Cómo preservar los query params al cambiar de ruta (añadiendo nuevos parámetros)?

A

Respuesta: queryParamsHandling: “merge”

Ejemplo:

this.router.navigate([‘/view2’], { queryParams: { otherKey: 2 }, queryParamsHandling: “merge”
});

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Cómo redirigir usando una ruta “catch-all”?

A

Respuesta: { path: “**”, redirectTo: “/not-found” }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Por qué el siguiente fragmento provoca error?

{ path: ‘’, redirectTo: ‘/somewhere-else’ }

A

Respuesta:

Es necesario añadir pathMatch: ‘full’. ya que la estrategia por defecto prefix provoca una redirección infinita.

Ejemplo:

{ path: ‘’, redirectTo: ‘/somewhere-else’, pathMatch: ‘full’ }

17
Q

¿Tipos de Route Guards?

A

Respuesta:

  • CanActivate
  • CanActivateChild
  • CanDeactivate
  • CanLoad
  • Resolve