Cours web frontend - Angular 8

Chap 4 : Créer votre premier component ( header…

Maintenant que nous en savons un peu plus sur les briques logiciels mit à disposition par Angular vu au chapitre précédent, nous allons pouvoir ajouter notre premier composant. Pour l’exemple, nous réaliserons un header pour la navigation à travers notre application et un footer. Je vous joint le code Github du projet si vous souhaitez vous en inspirer. N’oublier pas quand vous récupérer le projet, d’y faire un npm install au sein du projet afin d’installer les dépendances inscrite dans le package.json.

 

Création des components

On va se déplacer à la racine du projet et créer un nouveau répertoire que l’on va appeler Core :

  • cd src
  • cd app
  • mkdir Core
  • cd Core

On va générer nos deux components avec la Cli :

  • ng generate component header
  • ng generate component footer

 

Customization du Header

On va s’en servir pour créer un menu afin de permettre la navigation dans notre application.

La première étape et d’y ajouter le contenu de la vue du component Header dans la vue du composant principal de notre application, qui est app.component. Pour cela, on va ajouter le sélecteur du component Header et l’insérer dans app.component.html. Vous pouvez modifier le sélecteur de celui-ci dans l’entête du header.component.ts :

Dans cette en tête, vous avez :

  • selector : représente la balise HTML à appeler pour afficher la vue du composant de Header, donc son fichier HTML
  • templateUrl : c’est le fichier .HTML de la vue du composant
  • styleUrls : c’est le fichier de style .CSS correspondant au composant

 

On ajoute donc dans le fichier app.component.html la balise suivante en haut de fichier :

<app-header></app-header>

En lançant notre application nous avons le changement suivant :

Qui permet de nous indiquer que le contenu du header s’affiche correctement.

 

 

Ne pas oublier de déclarer notre nouveau composant dans son module respectif. Cli s’occupe de lui affecter la déclaration, mais c’est bon de savoir ce qu’il se passe quand on appelle la Cli :

Déclaration du nouveau composant Header dans son module parent

 

Ajout du menu de navigation

On va pouvoir ajouter un menu. Pour cela on va utiliser des material component, une librairie de base qui permet l’ajout d’élément graphique :

npm install @angular/material @angular/cdk @angular/animations

Dans app.module.ts, on va ajouter l’import de cette librairie  :

import { MatTabsModule } from '@angular/material/tabs';

Puis dans la partie imports, on ajoute MatTabsModule. Ajouter aussi le BrowserAnimationsModule, disponible depuis :

import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

Dans le fichier header.component.ts, on va y créer un tableau à fournir à notre menu pour qu’il puisse avoir des noms d’onglet :

Puis y ajouter notre composant dans le header.component.html :

 

Pour fonctionner enfin, il faut fournir un thème de base à notre application pour Angular/material. Pour cela, aller ajouter la ligne suivante dans le fichier style.css :

@import "../node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css";

Je vous laisse voir la doc, il existe une multitude de code couleur pré existant. Vous pouvez aussi créer le votre.

 

Customization du Footer

On va réitérer les étapes précédentes, à savoir :

Insertion du sélecteur de Footer dans la vue parente, soit à la fin de app.component.html :

<app-footer></app-footer>

 

Création de la <div> du footer :

 

On lui modifie sa feuille de style pour rester fixé en bas du site :

 

 

Et voila le résultat de l’ajout de notre header et footer sur l’application :

 

Dans le prochain chapitre, on va présenter le système de route permettant de naviguer entre les divers composants et module de l’application.

Momotoculteur
Développeur junior, j’ai un profil spécialisé dans le développement logiciel et les systèmes embarqués. Je m’intéresse depuis peu au domaine de la data science.
4 commentaires
  • tieri
    Répondre

    « mkdire Core » faut corriger ça fait pas sérieux.
    Salut !

    1. Bastien Maurice
      Répondre

      Hello Tieri,
      Merci pour la correction ! Maladroit en effet, comme je fais ça sur mon temps libre le soir après mes journées de boulot, ça m’arrive donc d’être un peu fatigué 🙂
      Excellent fin de weekend,
      Bastien

  • Fred
    Répondre

    Bonjour,
    le « implements OnInit » semble poser souci

  • Maxime
    Répondre

    Bonjour, il faut rajouter le OnInit dans le import comme ceci:
    import { Component, OnInit } from ‘@angular/core’;

Laisser un commentaire