8-5 Créer un composant de page
Sur la page d'accueil, nous listerons les différents projets sur une page dédiée. Nous devons donc créer un composant, et ensuite, via le système de routage Angular, indiquer que la page d'accueil sera la liste des projets.
Bien que nous ayons un composant pour afficher une liste de projets, ce composant ne se concentre que sur la liste de projets. Elle n'a pas l'ambition de représenter une page à part entière. Ainsi, ce n'est pas ce composant que nous utiliserons comme page, bien que nous continuerons de l'utiliser.
Retour sur la structure
Rappelons-nous la structure de base de l'application:
src/
├─ app/
│ ├─ core/
│ │ ├─ http
│ │ ├─ models
│ │ ├─ services
│ ├─ features/
│ │ ├─ projets/
│ │ | ├─ components
│ │ | ├─ pages
│ │ ├─ issues/
│ ├─ shared/
On sépare le code par fonctionnalités (features). Ici, la fonctionnalité à créer est la fonctionnalité liée aux projets. Il nous faudra donc un doisser projets
sous features
.
Créer le dossier features/projets
et features/projets/pages
- Dans
WebStorm
, créez un nouveau dossiersrc/app/features/projets
. Ce dossier sera responsable d'accueillir tout le code relié aux fonctionnalités des projets - Toujours dans
WebStorm
, créez un nouveau dossiersrc/app/features/projets/pages
. Ce dossier sera responsable d'accueil les composants affichant des pages.
Créer le composant de page ProjetsIndex
En Angular, un composant d'interface utilisateur (navbar
) ou un composant pour afficher une page entière, c'est la même chose.
Nous allons créer un composant appelée ProjetsIndex
qui sera responsable d'afficher une page pour la liste des projets. Au final nous aurons au minimum des pages pour:
ProjetsIndex
: Afficher les projetsProjetDetails
: Afficher les projetsProjetCreer
: Créer un projetProjetModifier
: Modifier un projet
Créer le composant
- Exécuter la commande suivante:
ng g component features/projets/pages/projets-index
- Vous devriez voir la structure suivante dans votre projet
Le fait de spécifier features/projets/pages/
lors de la création du composant vient préciser dans quel dossier dans la hiérarchie placer le fichier.
Comme il s'agit d'une page, on le place dans un dossier pages
. Ensuite, comme la page est en lien avec les projets, on la met dans un dossier de features projets
.
Modifier le template
de la nouvelle page
Vous pouvez en profiter pour changer légèrement le HTML
de la page afin d'y ajouter un titre:
@Component({
selector: 'app-projets-index',
imports: [],
template: `
<h1>Projets</h1>
`,
styles: ``
})
export class ProjetsIndex {
}
Nous allons voir à l'étape suivante comment lier le chemin d'accès (racine du site) au composant de page.