En aquest tema, aprendrem com gestionar la navegació i l'enrutament en una aplicació Ionic. La navegació és una part fonamental de qualsevol aplicació mòbil, ja que permet als usuaris moure's entre diferents pàgines i seccions de l'aplicació. Ionic utilitza Angular Router per gestionar la navegació, la qual cosa ens permet crear rutes i gestionar la navegació de manera eficient.

Conceptes Clau

  1. Rutes: Definicions de camins URL que corresponen a components específics.
  2. Router Outlet: Un component que actua com a contenidor per a les vistes que es carreguen en funció de les rutes.
  3. Navegació Programàtica: Navegació entre pàgines mitjançant codi, en lloc d'enllaços estàtics.

Configuració de les Rutes

Definint Rutes

Per definir rutes en una aplicació Ionic, hem de configurar el app-routing.module.ts. Aquí és on especifiquem les rutes i els components associats.

import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';

const routes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full'
  },
  {
    path: 'home',
    loadChildren: () => import('./home/home.module').then(m => m.HomePageModule)
  },
  {
    path: 'details',
    loadChildren: () => import('./details/details.module').then(m => m.DetailsPageModule)
  }
];

@NgModule({
  imports: [
    RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
  ],
  exports: [RouterModule]
})
export class AppRoutingModule { }

Explicació del Codi

  • path: Defineix el camí URL.
  • redirectTo: Redirigeix a una altra ruta.
  • pathMatch: Especifica com ha de coincidir el camí. full significa que el camí complet ha de coincidir.
  • loadChildren: Carrega el mòdul de la pàgina de manera dinàmica.

Router Outlet

El RouterOutlet és un component que actua com a contenidor per a les vistes que es carreguen en funció de les rutes definides.

<ion-router-outlet></ion-router-outlet>

Aquest component s'ha d'incloure en el app.component.html o en qualsevol altre component que actuï com a contenidor principal de les vistes.

Navegació entre Pàgines

Navegació Estàtica

Podem utilitzar enllaços estàtics per navegar entre pàgines.

<ion-button routerLink="/details">Go to Details</ion-button>

Navegació Programàtica

També podem navegar entre pàgines mitjançant codi.

import { Router } from '@angular/router';

constructor(private router: Router) {}

navigateToDetails() {
  this.router.navigate(['/details']);
}

Exercicis Pràctics

Exercici 1: Crear una Ruta Nova

  1. Objectiu: Crear una nova pàgina anomenada About i configurar la ruta corresponent.
  2. Passos:
    • Crear la pàgina About utilitzant el CLI d'Ionic.
      ionic generate page about
      
    • Afegir la ruta al app-routing.module.ts.
      {
        path: 'about',
        loadChildren: () => import('./about/about.module').then(m => m.AboutPageModule)
      }
      
    • Afegir un botó a la pàgina Home per navegar a la pàgina About.
      <ion-button routerLink="/about">Go to About</ion-button>
      

Exercici 2: Navegació Programàtica

  1. Objectiu: Implementar la navegació programàtica des de la pàgina Home a la pàgina Details.
  2. Passos:
    • Afegir un botó a la pàgina Home amb un event handler.
      <ion-button (click)="navigateToDetails()">Go to Details</ion-button>
      
    • Implementar la funció navigateToDetails en el component Home.
      import { Router } from '@angular/router';
      
      constructor(private router: Router) {}
      
      navigateToDetails() {
        this.router.navigate(['/details']);
      }
      

Errors Comuns i Consells

  • Error 404: Assegura't que les rutes estan correctament definides i que els camins coincideixen amb els URL.
  • Mòduls No Carregats: Verifica que els mòduls es carreguen correctament amb loadChildren.
  • Navegació Programàtica No Funciona: Assegura't que el Router està injectat correctament i que els camins són correctes.

Conclusió

En aquesta secció, hem après com configurar la navegació i l'enrutament en una aplicació Ionic. Hem vist com definir rutes, utilitzar el RouterOutlet i implementar la navegació tant estàtica com programàtica. Aquests conceptes són fonamentals per crear aplicacions mòbils amb una navegació fluida i intuïtiva. En el següent mòdul, explorarem com utilitzar pestanyes i menús laterals per millorar encara més la navegació de la nostra aplicació.

© Copyright 2024. Tots els drets reservats