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í.fullsignifica 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
Abouti configurar la ruta corresponent. - Passos:
- Crear la pàgina
Aboututilitzant 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
Homeper 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
Homea la pàginaDetails. - Passos:
- Afegir un botó a la pàgina
Homeamb un event handler.<ion-button (click)="navigateToDetails()">Go to Details</ion-button> - Implementar la funció
navigateToDetailsen 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
Routerestà 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
