Cette leçon du tutoriel montre comment créer un nouveau composant pour votre application Angular.
Ce que vous allez apprendre
Votre application dispose d'un nouveau composant : Home.
Aperçu conceptuel des composants Angular
Les applications Angular sont construites autour des composants, qui sont les briques de base d'Angular. Les composants contiennent le code, la mise en page HTML et les informations de style CSS qui assurent le fonctionnement et l'apparence d'un élément de l'application. Dans Angular, les composants peuvent contenir d'autres composants. Les fonctionnalités et l'apparence d'une application peuvent être réparties et découpées en composants.
Dans Angular, les composants ont des métadonnées qui définissent leurs propriétés.
Lorsque vous créez votre Home, vous utilisez ces propriétés :
selector: pour décrire comment Angular fait référence au composant dans les templates.imports: pour décrire les dépendances du composant.template: pour décrire le balisage HTML et la mise en page du composant.styleUrls: pour lister dans un tableau les URL des fichiers CSS utilisés par le composant.
-
Créer le
HomeDans cette étape, vous créez un nouveau composant pour votre application.
Dans le panneau Terminal de votre IDE :
Dans le répertoire de votre projet, allez dans le répertoire
first-app.Exécutez cette commande pour créer un nouveau
Homeng generate component homeExécutez cette commande pour compiler et servir votre application.
Note : Cette étape concerne uniquement votre environnement local !
ng serveOuvrez un navigateur et allez sur
http://localhost:4200pour trouver l'application.Vérifiez que l'application se compile sans erreur.
Utile : Le rendu doit être identique à celui de la leçon précédente car, même si vous avez ajouté un nouveau composant, vous ne l'avez encore inclus dans aucun template de l'application.
Laissez
ng servetourner pendant que vous réalisez les étapes suivantes.
-
Ajouter le nouveau composant à la mise en page de votre application
Dans cette étape, vous ajoutez le nouveau composant,
Home, au composant racine de votre application,App, afin qu'il s'affiche dans la mise en page de votre application.Dans le panneau Edit de votre IDE :
Ouvrez
app.tsdans l'éditeur.Dans
app.ts, importezHomeen ajoutant cette ligne aux imports du fichier.Importer Home dans src/app/app.ts
import {Component} from '@angular/core'; import {Home} from './home/home'; @Component({ selector: 'app-root', imports: [Home], template: ` <main> <header class="brand-name"> <img class="brand-logo" src="/public/logo.svg" alt="logo" aria-hidden="true" /> </header> <section class="content"> <app-home /> </section> </main> `, styleUrls: ['./app.css'], }) export class App { title = 'homes'; }Dans
app.ts, dans@Component, mettez à jour la propriété tableauimportsen y ajoutantHome.Remplacer dans src/app/app.ts
import {Component} from '@angular/core'; import {Home} from './home/home'; @Component({ selector: 'app-root', imports: [Home], template: ` <main> <header class="brand-name"> <img class="brand-logo" src="/public/logo.svg" alt="logo" aria-hidden="true" /> </header> <section class="content"> <app-home /> </section> </main> `, styleUrls: ['./app.css'], }) export class App { title = 'homes'; }Dans
app.ts, dans@Component, mettez à jour la propriététemplatepour inclure le code HTML suivant.Remplacer dans src/app/app.ts
import {Component} from '@angular/core'; import {Home} from './home/home'; @Component({ selector: 'app-root', imports: [Home], template: ` <main> <header class="brand-name"> <img class="brand-logo" src="/public/logo.svg" alt="logo" aria-hidden="true" /> </header> <section class="content"> <app-home /> </section> </main> `, styleUrls: ['./app.css'], }) export class App { title = 'homes'; }Enregistrez vos modifications dans
app.ts.Si
ng servetourne, l'application doit se mettre à jour. Sing servene tourne pas, relancez-le. Le texte Hello world de votre application doit être remplacé par home works!, provenant deHome.Regardez l'application dans le navigateur et vérifiez qu'elle a bien été mise à jour.
-
Ajouter des fonctionnalités à
HomeDans cette étape, vous ajoutez des fonctionnalités à
Home.À l'étape précédente, vous avez ajouté le
Homepar défaut au template de votre application, si bien que son HTML par défaut est apparu dans l'application. Dans cette étape, vous ajoutez un filtre de recherche et un bouton qui serviront dans une leçon ultérieure. Pour l'instant, c'est tout ce que contientHome. Notez que cette étape ajoute seulement les éléments de recherche à la mise en page, sans aucune fonctionnalité pour le moment.Si vous êtes parti d'un nouveau projet Angular au lieu de télécharger le projet de départ (ng new) : ajoutez ces styles globaux à
src/styles.csspour que le bouton de recherche et la bordure du champ de saisie soient visibles ::root { --primary-color: #605dc8; --secondary-color: #8b89e6; --accent-color: #e8e7fa; --shadow-color: #e8e8e8; } button.primary { padding: 10px; border: solid 1px var(--primary-color); background: var(--primary-color); color: white; border-radius: 8px; }Dans le panneau Edit de votre IDE :
Dans le répertoire
first-app, ouvrezhome.tsdans l'éditeur.Dans
home.ts, dans@Component, mettez à jour la propriététemplateavec ce code.Remplacer dans src/app/home/home.ts
import {Component} from '@angular/core'; @Component({ selector: 'app-home', template: ` <section> <form> <input type="text" placeholder="Filter by city" /> <button class="primary" type="button">Search</button> </form> </section> `, styleUrls: ['./home.css'], }) export class Home {}Ouvrez ensuite
home.cssdans l'éditeur et remplacez son contenu par ces styles.Note : Dans le navigateur, ils peuvent être placés dans
src/app/home/home.ts, dans le tableaustyles.Remplacer dans src/app/home/home.css
.results { display: grid; column-gap: 14px; row-gap: 14px; grid-template-columns: repeat(auto-fill, minmax(400px, 400px)); margin-top: 50px; justify-content: space-around; } input[type="text"] { border: solid 1px var(--primary-color); padding: 10px; border-radius: 8px; margin-right: 4px; display: inline-block; width: 30%; } button { padding: 10px; border: solid 1px var(--primary-color); background: var(--primary-color); color: white; border-radius: 8px; } @media (min-width: 500px) and (max-width: 768px) { .results { grid-template-columns: repeat(2, 1fr); } input[type="text"] { width: 70%; } } @media (max-width: 499px) { .results { grid-template-columns: 1fr; } }Vérifiez que l'application se compile sans erreur. Vous devez trouver le champ de filtre et le bouton dans votre application, avec leurs styles appliqués. Corrigez les éventuelles erreurs avant de passer à l'étape suivante.
Résumé : Dans cette leçon, vous avez créé un nouveau composant pour votre application et lui avez ajouté un champ de filtre et un bouton.
Pour en savoir plus sur les sujets abordés dans cette leçon, consultez :