Upgrade to Pro — share decks privately, control downloads, hide ads and more …

QSs

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for Ulrich Dohou Ulrich Dohou
October 22, 2024
8

 QSs

sqS

Avatar for Ulrich Dohou

Ulrich Dohou

October 22, 2024

Transcript

  1. Présentation de la Formation Angular • Ulrich Dohou • Développeur

    Fullstack et Tech Lead • 10 ans d'expérience dans le développement d'applications web. • Spécialisé en Laravel, Angular, Symfony, et autres technologies web. • Passionné par la transmission du savoir à la nouvelle génération de développeurs.
  2. Objectifs de la Formation Angular • - Comprendre les concepts

    fondamentaux d’Angular • - Manipuler les composants, services, et routes • - Optimiser les performances et la gestion de la mémoire • - Consommer une API externe (ChatGPT) dans une application Angular • - Sécuriser les applications avec JWT et gérer les guards
  3. Introduction à Angular • Angular est un framework open-source développé

    par Google, principalement utilisé pour construire des applications web dynamiques. • Il se distingue par son utilisation de **TypeScript**, un sur-ensemble de JavaScript qui ajoute la vérification statique des types. • **Vue d'ensemble d'Angular :** • - **Composants** : chaque page ou fonctionnalité dans Angular est un composant. • - **Modules** : ils regroupent les composants similaires. • - **Services** : partagent des données et encapsulent la logique métier. • **Exemple pratique :** • Pour commencer à utiliser Angular, vous devez installer Angular CLI et créer une nouvelle application : • ```bash • npm install -g @angular/cli • ng new my-angular-app • cd my-angular-app • ng serve • ``` • L'application sera servie sur `http://localhost:4200/` où vous verrez la première application Angular en action.
  4. Mise en place de l'environnement • - **Installation de Node.js**

    : Angular repose sur Node.js pour la gestion des dépendances via npm (Node Package Manager). • - **Installation d'Angular CLI** : C'est l'outil en ligne de commande qui facilite la création de projets Angular. • - **Création d'un projet Angular** : Grâce à Angular CLI, vous pouvez facilement générer un nouveau projet. • **Exemple pratique :** • ```bash • npm install -g @angular/cli • ng new my-angular-app • cd my-angular-app • ng serve • ``` • Cela lance un serveur local et vous permet de développer rapidement votre application.
  5. Composants et Cycles de Vie • Les composants sont les

    blocs de construction de toute application Angular. Chaque composant contient trois parties : • - **Template** : Le HTML pour l'affichage. • - **Styles** : Les fichiers CSS ou SCSS pour l'apparence. • - **Script** : Le fichier TypeScript pour la logique. • Angular permet également de gérer les événements du cycle de vie du composant à travers des hooks comme : • - `ngOnInit` : Appelé lorsque le composant est initialisé. • - `ngOnDestroy` : Appelé juste avant que le composant soit détruit. • **Exemple pratique :** • Créez un composant en utilisant Angular CLI : • ```bash • ng generate component my-component • ``` • Cela génère un composant, que vous pouvez personnaliser en modifiant le fichier `my-component.component.ts`.
  6. Routing et Navigation • Le **routing** dans Angular permet de

    naviguer entre différentes pages d'une application. Cela se fait à travers le fichier `app-routing.module.ts` où sont définies les routes. • Pour configurer le routing, vous devez définir vos routes comme ceci : • ```typescript • const routes: Routes = [ • { path: 'home', component: HomeComponent }, • { path: 'about', component: AboutComponent } • ]; • ``` • Ensuite, utilisez `routerLink` dans vos templates pour naviguer entre les pages : • ```html • <a routerLink='/home'>Home</a> • ``` • **Lazy Loading** : permet de charger les modules uniquement lorsque cela est nécessaire, optimisant ainsi les performances de l'application.
  7. Directives et Pipes • Les **directives** sont des instructions dans

    le DOM d'Angular. Les directives structurelles comme `*ngIf` et `*ngFor` permettent de manipuler dynamiquement les éléments de la page. • - `*ngIf` : Affiche un élément seulement si une condition est vraie. • - `*ngFor` : Itère sur une collection pour afficher plusieurs éléments. • Les **pipes** permettent de transformer les données dans un template. Exemples : • - `DatePipe` : Formate une date. • - `UpperCasePipe` : Transforme une chaîne en majuscules. • **Exemple pratique :** • Utilisez `*ngFor` pour itérer sur une liste et afficher les éléments : • ```html • <div *ngFor='let item of items'>{{ item }}</div> • ```
  8. HttpClient et Gestion des Appels HTTP • Le service **HttpClient**

    permet de faire des appels HTTP pour consommer des APIs externes. Par exemple, pour consommer l'API ChatGPT et récupérer des réponses. • **Exemple d'appel HTTP avec HttpClient :** • ```typescript • this.http.get('https://api.example.com/data').subscribe(response => { • console.log(response); • }); • ``` • **HttpInterceptor** est utilisé pour intercepter et modifier les requêtes HTTP. Cela est utile pour ajouter des en-têtes comme un token JWT pour l'authentification.
  9. Sécurité dans Angular • La **sécurité** est un aspect essentiel

    dans le développement d'applications web. Voici quelques mesures de sécurité importantes dans Angular : • - **JWT (JSON Web Token)** : Utilisé pour l'authentification, il permet de sécuriser les API. • - **Guards** : `CanActivate` et `CanDeactivate` sont utilisés pour protéger l'accès à certaines routes. • - **Protection contre les attaques XSS** : Angular fournit des mécanismes intégrés pour protéger contre les attaques par script intersite (XSS). • **Exemple pratique :** • Implémentez l'authentification avec JWT et protégez certaines routes avec un guard `CanActivate` : • ```typescript • this.authService.login(credentials).subscribe(token => { • localStorage.setItem('token', token); • }); • ```
  10. Optimisation des Performances • Pour améliorer les performances dans Angular,

    vous pouvez utiliser plusieurs techniques : • - **Lazy Loading** : Chargez les modules uniquement lorsqu'ils sont nécessaires. • - **OnPush Change Detection** : Change Detection est une stratégie qui permet à Angular de ne vérifier les changements dans un composant que lorsqu'il y a une interaction spécifique. • **Exemple pratique :** • Utilisez `OnPush` pour optimiser un composant : • ```typescript • @Component({ • changeDetection: ChangeDetectionStrategy.OnPush • }) • ``` • Cela réduit le nombre de vérifications des changements par Angular, améliorant ainsi les performances.