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
- Rutes: Definicions de camins URL que corresponen a components específics.
- Router Outlet: Un component que actua com a contenidor per a les vistes que es carreguen en funció de les rutes.
- 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.
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.
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
- Objectiu: Crear una nova pàgina anomenada
About
i configurar la ruta corresponent. - 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àginaAbout
.<ion-button routerLink="/about">Go to About</ion-button>
- Crear la pàgina
Exercici 2: Navegació Programàtica
- Objectiu: Implementar la navegació programàtica des de la pàgina
Home
a la pàginaDetails
. - 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 componentHome
.import { Router } from '@angular/router'; constructor(private router: Router) {} navigateToDetails() { this.router.navigate(['/details']); }
- Afegir un botó a la pàgina
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ó.
Curs de Desenvolupament Ionic
Mòdul 1: Introducció a Ionic
- Què és Ionic?
- Configuració de l'Entorn de Desenvolupament
- Creant la Teva Primera App Ionic
- Entenent l'Estructura del Projecte
- Executant i Depurant la Teva App
Mòdul 2: Components Bàsics i Navegació
- Visió General dels Components Ionic
- Utilitzant Botons i Icones Ionic
- Creant i Utilitzant Pàgines
- Navegació i Enrutament
- Pestanyes i Menús Laterals
Mòdul 3: Estilització i Tematització
- Introducció a l'Estilització Ionic
- Utilitzant CSS i SCSS en Ionic
- Tematitzant la Teva App Ionic
- Disseny Responsiu en Ionic
- Personalitzant Components Ionic
Mòdul 4: Treballant amb Dades
- Introducció al Binding de Dades
- Utilitzant Serveis Angular
- Peticions HTTP i APIs
- Emmagatzemant Dades Localment
- Utilitzant Ionic Storage
Mòdul 5: Components i Funcionalitats Avançades
- Utilitzant Formularis Ionic
- Validació i Gestió d'Errors
- Utilitzant Plugins Ionic Native i Cordova
- Accedint a Funcionalitats del Dispositiu
- Notificacions Push
Mòdul 6: Proves i Desplegament
- Proves Unitàries en Ionic
- Proves de Cap a Cap
- Construint per a Producció
- Desplegant a les Botigues d'Aplicacions
- Integració i Lliurament Continu