Table des matières
À propos de la CLI angulaire
À propos de l'injection de dépendances d'Angular (injection de dépendances)
À propos de la compilation angulaire, la différence entre AOT et JIT" >À propos de la compilation angulaire, la différence entre AOT et JIT
Liaison bidirectionnelle angulaire
Trois façons de liaison de données angulaires
À propos du module d'angular
Qu'est-ce qu'une directive ?
La différence entre Promise et Observable
Si vous souhaitez améliorer les performances d'Angular
Comment mettre à niveau la version angulaire
Maison interface Web js tutoriel Compilation de questions d'entretien Angular8+ : analyse des points de connaissances de base

Compilation de questions d'entretien Angular8+ : analyse des points de connaissances de base

Feb 15, 2022 am 10:58 AM
angular 面试题

Cet article triera et partagera avec vous quelques questions d'entretien basées sur Angular8+, et vous donnera une compréhension approfondie des points de connaissances de base d'Angular8+. J'espère qu'il vous sera utile !

Compilation de questions d'entretien Angular8+ : analyse des points de connaissances de base

Recommandations associées : Résumé des questions d'entretien Big Front-end 2022 (Collection)

À propos de la CLI angulaire

La CLI angulaire, également connue sous le nom d'échafaudage angulaire, est utilisée pour générer rapidement le cadre de projets ou de composants. pour améliorer l'efficacité. Les applications, composants, services, etc. angulaires peuvent être facilement générés et peuvent être créés selon vos propres besoins via des paramètres. On peut dire que c'est un outil indispensable pour le développement angulaire. [Recommandations de didacticiel associées : "Tutoriel angulaire"]
Référence : https://cli.angular.io/

  • ng generate : Créer de nouveaux composants, services, canaux, classes, etc.
  • ng new : Créer un nouveau angulaire app
  • ng update : mettre à niveau angulaire lui-même et ses dépendances
  • ng version : afficher la version globale d'angular cli et les versions locales d'angular cli, du code angulaire, etc.
  • ng add : ajouter une nouvelle bibliothèque tierce . Il fera 2 choses, 1) installer node_modules basé sur npm, 2) modifier automatiquement le fichier de configuration pour garantir que les nouvelles dépendances fonctionnent correctement

À propos de l'injection de dépendances d'Angular (injection de dépendances)

L'injection de dépendances est un type d'Angular Les modèles de conception d'applications sont l'un des concepts fondamentaux d'Angular.

Une dépendance est un service avec une série de fonctions. Divers composants et directives (dérictifs) dans l'application peuvent nécessiter les fonctions du service. Angular fournit un mécanisme fluide grâce auquel nous pouvons injecter ces dépendances dans nos composants et directives. Nous construisons donc simplement des dépendances qui peuvent être injectées entre tous les composants de l'application.

L'utilisation de l'injection de dépendances présente également les avantages suivants :

  1. Pas besoin d'instancier (nouvelle instance). Vous n'avez pas à vous soucier des paramètres nécessaires dans le constructeur de la classe
  2. Une fois injectés (le module d'application est injecté via les fournisseurs), tous les composants peuvent être utilisés. De plus, la même instance de service (Singleton) est utilisée, ce qui signifie que les données d'un service sont partagées et peuvent être utilisées pour le transfert de données entre les composants.

À propos de la compilation angulaire, la différence entre AOT et JIT

Chaque application Angular contient des composants et des modèles que le navigateur ne peut pas comprendre. Par conséquent, toutes les applications Angular doivent être compilées avant de s'exécuter dans le navigateur.

Angular propose deux types de compilation :

  • Compilation JIT (Just-in-Time)
  • Compilation AOT (Ahead-of-Time)

La différence est que dans la compilation JIT, l'application navigue pendant l'exécution de la compilation se fait à l'intérieur du compilateur alors que dans la compilation AOT, l'application est compilée pendant le temps de construction.
Évidemment, la compilation AOT présente de nombreux avantages, c'est donc la méthode de compilation par défaut d'Angular. Avantages clés

  • Étant donné que l'application est compilée avant d'être exécutée dans le navigateur, le navigateur charge le code exécutable et restitue l'application immédiatement, ce qui entraîne un rendu plus rapide.
  • Dans la compilation AOT, le compilateur enverra des fichiers HTML et CSS externes avec l'application, éliminant ainsi les requêtes AJAX distinctes pour ces fichiers source, réduisant ainsi les requêtes ajax.
  • Les développeurs peuvent détecter et gérer les erreurs pendant la phase de construction, ce qui permet de minimiser les erreurs.
  • Le compilateur AOT ajoute du HTML et des modèles aux fichiers JS avant de les exécuter dans le navigateur. Par conséquent, il n’y a pas de fichiers HTML redondants à lire, ce qui offre une meilleure sécurité à l’application.

Liaison bidirectionnelle angulaire

Le principe de la liaison bidirectionnelle angulaire

La liaison bidirectionnelle d'Angular est implémentée via une vérification des données sales (Dirty check).

  • Le principe de base de la détection des valeurs sales est de stocker l'ancienne valeur et, lors de la détection, de comparer la nouvelle valeur du moment actuel avec l'ancienne valeur. S'ils sont égaux, il n'y a pas de changement. Sinon, un changement est détecté et la vue doit être mise à jour.

  • Il y a Zone.js dans angulaire2. Pour setTimeout, addEventListener, promise, etc. sont tous exécutés dans ngZone (en d'autres termes, ils sont encapsulés et réécrits par zone.js). Angular configure le hook correspondant dans ngZone, informe angulaire2 d'effectuer le traitement de vérification sale correspondant et puis met à jour le DOM.

Problème d'efficacité de la liaison bidirectionnelle angulaire

Pour les situations où il y a un très grand nombre d'éléments DOM (des centaines ou des milliers) qui doivent être liés dans la page, des problèmes d'efficacité seront inévitablement rencontrés. (Les spécificités dépendent également des performances du PC et du navigateur). De plus, si le sale check dépasse 10 fois (valeur d'expérience ?), on considère qu'il y a un problème avec le programme et aucun autre contrôle ne sera effectué.
Vous pouvez l'éviter des manières suivantes

  • Pour les données qui sont uniquement utilisées pour l'affichage, utilisez la liaison unidirectionnelle au lieu de la liaison bidirectionnelle

     ;
  • Le flux de données d'Angular est descendant, circulant dans une direction des composants parents vers les composants enfants. Le flux de données unidirectionnel garantit une détection efficace et prévisible des changements. La composantisation est donc également un moyen d’améliorer les performances.

  • Écrivez une logique moins complexe dans les expressions (et les fonctions appelées par les expressions)

  • Ne connectez pas de tuyaux trop longs (souvent le tuyau traversera et générera de nouveaux tableaux, tuyau dans anglarJS (v1) (appelé filtre)

  • Stratégie de détection de changement onPush. Angular a deux stratégies de détection de changement. La valeur par défaut est la stratégie de détection des changements par défaut d'Angular, qui est le contrôle sale mentionné ci-dessus (vérifiez toutes les valeurs tant qu'elles changent). Les développeurs peuvent mettre en place une méthode de détection des changements plus efficace selon le scénario : onPush. La stratégie onPush signifie que le composant n'effectuera une détection de changement que lorsque la référence aux données d'entrée change ou qu'un événement est déclenché.

  • NgFor doit être utilisé avec l'équation trackBy. Sinon, NgFor mettra à jour le DOM pour chaque élément de la liste lors de chaque processus de détection de valeur sale.

Trois façons de liaison de données angulaires

<div>
    <span>Name {{item.name}}</span>  <!-- 1. 直接绑定 -->
    <span>Classes {{item | classPipe}}</span><!-- 2. pipe方式-->
    <span>Classes {{classes(item)}}</span><!-- 3.绑定方法调用的结果 -->
</div>
Copier après la connexion
  • Liaison directe : dans la plupart des cas, c'est la meilleure façon de procéder.

  • Le résultat de l'appel de la méthode de liaison : lors de chaque processus de détection de valeur sale, l'équation des classes doit être appelée une fois. S’il n’y a pas de besoins particuliers, cette méthode d’utilisation doit être évitée autant que possible.

  • Méthode pipe : elle est similaire à la fonction de liaison, et la classe de détection de valeur salePipe sera appelée à chaque fois. Cependant, Angular a optimisé le canal et ajouté une mise en cache. Si l'élément est égal à la dernière fois, le résultat sera renvoyé directement.

Pour plus de conseils d'optimisation, reportez-vous aux conseils d'optimisation des performances sur la liaison angulaire (vérification sale)

À propos du module d'angular

Qu'est-ce que le module d'angular

Le module (Module) est un module que nous pouvons Un endroit pour regrouper les composants, les services et les tuyaux. Les modules décident si d'autres modules peuvent utiliser des composants, des directives, etc. en exportant ou en masquant ces éléments. Chaque module est défini à l'aide du décorateur @NgModule.

La différence entre le module racine et le module de fonctionnalités.

Chaque application Angular ne peut avoir qu'un seul module racine (Root Module), et elle peut avoir un ou plusieurs modules de fonctionnalités (Feature Module). Le module racine importe BrowserModule, tandis que le module fonction importe CommonModule.

Module Lazy-loading

Lorsqu'un projet devient volumineux, afin d'améliorer la vitesse de chargement du premier écran, vous pouvez utiliser le Lazy-loading pour charger uniquement lorsque certaines URL spécifiques sont accessibles. pas couramment utilisé.

Mise en œuvre : créez un module de fonctionnalités normalement et modifiez la configuration du routage. Par exemple :

const routes: Routes = [
  {
    path: &#39;customers&#39;,
    loadChildren: () => import(&#39;./customers/customers.module&#39;).then(m => m.CustomersModule)
  }
];
Copier après la connexion

De cette façon, après compilation, ce module de fonctionnalités sera un js indépendant. Ce n'est que lorsque l'utilisateur accédera à l'url (~/customers) que ce js indépendant sera demandé au serveur, puis chargé et exécuté. .

Reportez-vous à https://angular.io/guide/lazy-loading-ngmodules

Qu'est-ce qu'une directive ?

La directive est utilisée pour ajouter un comportement à un élément (DOM) ou un composant (Component) existant.
En même temps, plusieurs instructions peuvent être appliquées à un élément ou un composant.

La différence entre Promise et Observable

Tout d'abord, la nouvelle version d'anuglar recommande d'utiliser Observable (appartenant à RxJS). Deuxièmement, pour les objets Observable, vous pouvez utiliser .toPromise() pour les convertir en objets Promise.

  • Promesse, qu'il soit alors appelé ou non. Les promesses sont exécutées immédiatement ; les observables ne sont créés et exécutés que lorsqu'ils sont appelés (abonnement).

  • Promise renvoie une valeur ; Observable renvoie 0 à N valeurs. Ainsi, l'opérateur correspondant à Promise est .then(), et l'opérateur correspondant à Observable est .subscribe

  • Observable Il prend également en charge les opérateurs map, filter, reduction et similaires

  • Observable peut être annulé, mais Promise ne peut pas.

Si vous souhaitez améliorer les performances d'Angular

Angular est toujours une application Web, les techniques générales pour améliorer les performances Web sont donc universelles. Pour Angular, il existe des techniques d'optimisation spéciales :

  • Compilation AOT. Comme mentionné précédemment, ne compilez pas côté client
  • L'application a été minimisée (uglify et arbre tremblant)
  • Les instructions d'importation inutiles ont été supprimées. S’il reste des restes, ils seront également inclus lors de l’emballage.
  • Assurez-vous que les bibliothèques tierces inutilisées ont été supprimées de l'application. Comme ci-dessus.
  • Lorsque le projet est de grande envergure, pensez au lazy chargement (Lazy Loading) pour assurer la vitesse de chargement de la page d'accueil.

Comment mettre à niveau la version angulaire

Angular CLI fournit une commande de mise à niveau (ng update). En même temps, le site officiel (https://update.angular.io/) dispose également d'un guide de mise à niveau. Après avoir sélectionné la version à partir de laquelle mettre à niveau, des commandes de mise à niveau étape par étape seront données, exécutez-les simplement directement.

Pour plus de connaissances sur la programmation, veuillez visiter : Apprendre la programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment installer Angular sur Ubuntu 24.04 Comment installer Angular sur Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js est une plateforme JavaScript librement accessible pour créer des applications dynamiques. Il vous permet d'exprimer rapidement et clairement divers aspects de votre application en étendant la syntaxe HTML en tant que langage de modèle. Angular.js fournit une gamme d'outils pour vous aider à écrire, mettre à jour et tester votre code. De plus, il offre de nombreuses fonctionnalités telles que le routage et la gestion des formulaires. Ce guide expliquera comment installer Angular sur Ubuntu24. Tout d’abord, vous devez installer Node.js. Node.js est un environnement d'exécution JavaScript basé sur le moteur ChromeV8 qui vous permet d'exécuter du code JavaScript côté serveur. Être à Ub

Explication détaillée du gestionnaire d'état d'apprentissage angulaire NgRx Explication détaillée du gestionnaire d'état d'apprentissage angulaire NgRx May 25, 2022 am 11:01 AM

Cet article vous donnera une compréhension approfondie du gestionnaire d'état NgRx d'Angular et vous présentera comment utiliser NgRx. J'espère qu'il vous sera utile !

Un article explorant le rendu côté serveur (SSR) dans Angular Un article explorant le rendu côté serveur (SSR) dans Angular Dec 27, 2022 pm 07:24 PM

Connaissez-vous Angular Universel ? Cela peut aider le site Web à fournir un meilleur support SEO !

Comment utiliser PHP et Angular pour le développement front-end Comment utiliser PHP et Angular pour le développement front-end May 11, 2023 pm 04:04 PM

Avec le développement rapide d'Internet, la technologie de développement front-end s'améliore et se répète constamment. PHP et Angular sont deux technologies largement utilisées dans le développement front-end. PHP est un langage de script côté serveur capable de gérer des tâches telles que le traitement des formulaires, la génération de pages dynamiques et la gestion des autorisations d'accès. Angular est un framework JavaScript qui peut être utilisé pour développer des applications monopage et créer des applications Web composées de composants. Cet article explique comment utiliser PHP et Angular pour le développement front-end et comment les combiner.

Cinq questions et réponses courantes en matière d'entretien en langage Go Cinq questions et réponses courantes en matière d'entretien en langage Go Jun 01, 2023 pm 08:10 PM

En tant que langage de programmation devenu très populaire ces dernières années, le langage Go est devenu un point chaud pour les entretiens dans de nombreuses entreprises. Pour les débutants du langage Go, comment répondre aux questions pertinentes lors du processus d’entretien est une question qui mérite d’être explorée. Voici cinq questions et réponses courantes d’entretien en langage Go pour référence pour les débutants. Veuillez présenter comment fonctionne le mécanisme de récupération de place du langage Go ? Le mécanisme de récupération de place du langage Go est basé sur l'algorithme de balayage de marque et l'algorithme de marquage à trois couleurs. Lorsque l'espace mémoire du programme Go n'est pas suffisant, le garbage collector Go

Une brève analyse de la façon d'utiliser monaco-editor en angulaire Une brève analyse de la façon d'utiliser monaco-editor en angulaire Oct 17, 2022 pm 08:04 PM

Comment utiliser monaco-editor en angulaire ? L'article suivant enregistre l'utilisation de monaco-editor dans angulaire qui a été utilisé dans une entreprise récente. J'espère qu'il sera utile à tout le monde !

Une brève analyse des composants indépendants dans Angular et voir comment les utiliser Une brève analyse des composants indépendants dans Angular et voir comment les utiliser Jun 23, 2022 pm 03:49 PM

Cet article vous présentera les composants indépendants dans Angular, comment créer un composant indépendant dans Angular et comment importer des modules existants dans le composant indépendant. J'espère qu'il vous sera utile !

Composants angulaires et leurs propriétés d'affichage : comprendre les valeurs par défaut non bloquantes Composants angulaires et leurs propriétés d'affichage : comprendre les valeurs par défaut non bloquantes Mar 15, 2024 pm 04:51 PM

Le comportement d'affichage par défaut des composants du framework Angular ne concerne pas les éléments au niveau du bloc. Ce choix de conception favorise l'encapsulation des styles de composants et encourage les développeurs à définir consciemment la manière dont chaque composant est affiché. En définissant explicitement l'affichage des propriétés CSS, l'affichage des composants angulaires peut être entièrement contrôlé pour obtenir la mise en page et la réactivité souhaitées.

See all articles