19 concepts que vous devez apprendre pour devenir un développeur Angular efficace

L'application frontale TODO est la mĂȘme que «Hello world» en programmation normale. Lors de la crĂ©ation d'applications TODO, vous pouvez Ă©tudier l'implĂ©mentation des opĂ©rations CRUD en utilisant l'un ou l'autre framework. Mais souvent, ces projets ne sont que superficiellement liĂ©s Ă  ce que le cadre sait rĂ©ellement.

Si vous regardez Angular, vous avez le sentiment que ce cadre est en constante évolution et mise à jour. En fait, en ce qui concerne Angular, nous pouvons mettre en évidence certaines idées qui restent inchangées. Le matériel, dont nous publions la traduction aujourd'hui, donne un aperçu des concepts angulaires de base que vous devez comprendre afin d'utiliser correctement et efficacement les capacités de ce cadre.



Pour apprendre Angular, vous devez apprendre beaucoup. De nombreux dĂ©veloppeurs se retrouvent coincĂ©s dans les premiĂšres Ă©tapes du dĂ©veloppement d'Angular. Cela est dĂ» au fait qu'ils ne savent pas oĂč aller, ou ne savent pas quels mots clĂ©s ils devraient rechercher pour obtenir des informations qui leur permettront de faire un pas en avant. L'auteur de ce document dit que lorsqu'elle a commencĂ© Ă  apprendre Angular 2+, elle aimerait qu'elle rencontre un guide de ce cadre similaire Ă  celui-ci.

1. L'architecture modulaire d'Angular


En thĂ©orie, les applications angulaires peuvent ĂȘtre créées en mettant tout le code sur une seule page, dans une Ă©norme fonction. Mais pour ce faire, d'une part, n'est pas recommandĂ©, et d'autre part, cette approche ne peut pas ĂȘtre qualifiĂ©e d'efficacitĂ© du point de vue de la structuration du code. De plus, cela donne un sens Ă  l'existence mĂȘme d'Angular.

Angular, dans le cadre de son architecture de cadre, utilise largement le concept de modules. Un module est un morceau de code dont l'existence n'a qu'une seule raison. En général, nous pouvons dire que les applications angulaires sont assemblées à partir de modules. Certains modules ne sont utilisés qu'à un seul endroit de l'application, certains à différents endroits.

Il existe de nombreuses façons de structurer des modules dans une application. De plus, l'étude de différents modÚles architecturaux permet de comprendre comment organiser la structure de l'application dans le but de la faire évoluer au cours de sa croissance. De plus, une utilisation prudente des modules permet d'isoler le code et d'éviter la duplication de code dans un projet.
La sous-section suivante fournit des exemples de requĂȘtes par lesquelles vous pouvez rechercher des documents supplĂ©mentaires sur ce sujet. Ces sous-sections se trouvent dans d'autres sections de ce document.

▍Rechercher des requĂȘtes


  • ModĂšles d'architecture angulaire.
  • Architecture d'application angulaire Ă©volutive.

2. Flux de données à sens unique et immuabilité


De nombreux développeurs utilisant Angular 1 ont aimé le concept de liaison bidirectionnelle. En fait, c'était l'une des qualités attrayantes d'Angular. Mais au fil du temps, à mesure que les applications angulaires devenaient plus complexes, il est devenu clair que la liaison bidirectionnelle crée des problÚmes de performances.

Il s'est avéré qu'en fait, la liaison bidirectionnelle n'est pas nécessaire si souvent.
Dans Angular 2+, vous pouvez toujours utiliser la liaison bidirectionnelle, mais uniquement lorsque le dĂ©veloppeur exprime explicitement son intention d'utiliser cette fonctionnalitĂ©. Cette approche incite ceux qui Ă©crivent du code d'application Ă  rĂ©flĂ©chir Ă  la direction des flux de donnĂ©es. De plus, cela permet un travail plus flexible avec les donnĂ©es. La flexibilitĂ© est obtenue grĂące Ă  la possibilitĂ© de personnaliser exactement la façon dont les donnĂ©es doivent ĂȘtre dĂ©placĂ©es dans l'application.

▍Rechercher des requĂȘtes


  • Meilleures pratiques en matiĂšre de flux de donnĂ©es angulaires.
  • Écoulement unidirectionnel en angulaire.
  • Avantages de la reliure unidirectionnelle.

3. Attribut et directives structurelles d'Angular


Une directive est une extension de HTML via des éléments personnalisés. Les directives d'attribut, ou attributs, vous permettent de modifier les propriétés des éléments. Les directives structurelles vous permettent d'influencer le contenu des pages en supprimant des éléments du DOM ou en les ajoutant au DOM.
Par exemple, ngSwitch et ngIf sont des directives structurelles, car elles Ă©valuent les paramĂštres qui leur sont transmis et dĂ©terminent si certaines parties du DOM doivent ĂȘtre prĂ©sentes dans le document.

Les attributs sont des mécanismes pour changer le comportement standard des éléments, personnalisables par le programmeur.

Apprendre à utiliser ces deux types de directives vous aidera à étendre les capacités de votre application et à réduire la quantité de code en double. De plus, les directives d'attribut peuvent aider à mettre en évidence certains modÚles de modification d'éléments utilisés à différents endroits de l'application.

▍Rechercher des requĂȘtes


  • Directives d'attributs angulaires (directives d'attributs angulaires).
  • Directives structurelles angulaires.
  • ModĂšles de directives structurelles angulaires.

4. Méthodes de cycle de vie des composants


Chaque morceau de code a son propre cycle de vie, qui détermine comment quelque chose est créé, affiché à l'écran, puis disparaßt. Angular a un concept appelé cycle de vie d'un composant. Cela ressemble à ceci:

  • CrĂ©ation.
  • Rendu
  • Rendu des composants enfants.
  • VĂ©rifiez les modifications apportĂ©es aux propriĂ©tĂ©s liĂ©es aux donnĂ©es.
  • Destruction.
  • Suppression du DOM.

Le programmeur a la possibilité d'intervenir dans le composant à des moments clés de ce cycle, en se concentrant, par exemple, sur certains événements. Cela vous permet de personnaliser le comportement du programme à différents moments du cycle de vie des composants.

Par exemple, vous devrez peut-ĂȘtre charger certaines donnĂ©es avant que la page ne s'affiche. Vous pouvez le faire dans la mĂ©thode du cycle de vie du composant ngOnInit() . Ou, peut-ĂȘtre Ă  un moment donnĂ© de l'application, vous devez vous dĂ©connecter de la base de donnĂ©es. Vous pouvez le faire dans la mĂ©thode ngOnDestroy() .

▍Rechercher des requĂȘtes


  • Crochets de cycle de vie angulaire.
  • Cycle de vie des composants.

5. Services HTTP et objets observables


Ce dont nous parlons ici n'est probablement pas lié aux caractéristiques spéciales d'Angular, mais à ES7. Il se trouve que dans Angular, le travail avec les objets observables est implémenté au niveau du framework. Des mécanismes similaires existent dans React, Vue et d'autres bibliothÚques et frameworks basés sur JavaScript.

Les objets observables sont des modÚles qui vous aident à travailler efficacement avec des données dans des systÚmes basés sur des événements. Afin de développer efficacement des applications angulaires, vous devez savoir comment utiliser les services HTTP et les objets observables.

▍Rechercher des requĂȘtes


  • ModĂšles observables JavaScript (modĂšles d'objets observables JavaScript).
  • HTTP angulaire et observables (objets HTTP et observables en angulaire).
  • Fonction observable ES7 (Objets observables dans ES7).

6. Composants intelligents et stupides


Beaucoup, dĂ©veloppant des applications angulaires, s'efforcent de mettre tout ce qui est nĂ©cessaire au fonctionnement de ces composants. Certes, ce n'est pas tout Ă  fait quelque chose qui pourrait ĂȘtre recommandĂ© pour une utilisation pratique. L'idĂ©e d'utiliser des composants «intelligents» et «stupides» dans Angular est un concept qui devrait peut-ĂȘtre ĂȘtre Ă©voquĂ© plus souvent qu'ils ne le font actuellement, en particulier dans les cercles des dĂ©veloppeurs novices.

Le fait que le composant soit intelligent ou stupide détermine son rÎle dans la conception globale du périphérique d'application. Les composants "idiots" n'ont souvent aucun état, ils diffÚrent par un comportement simple, prévisible et compréhensible. Il est recommandé, dans la mesure du possible, de se concentrer sur la création et l'utilisation de composants "stupides".

Il est plus difficile de travailler avec des composants "intelligents", car au cours du travail, ils reçoivent des données d'entrée et génÚrent des données de sortie. Afin d'utiliser Angular efficacement, familiarisez-vous avec le concept de composants intelligents et stupides. Cette connaissance vous fournira des modÚles et des idées sur la façon d'organiser des fragments de code d'application et de construire des relations entre ces fragments entre eux.

▍Rechercher des requĂȘtes


  • Composants angulaires intelligents / stupides.
  • Composants muets sans Ă©tat.
  • Composants de prĂ©sentation.
  • Composants intelligents en angulaire.

7. La structure de l'application et les recommandations pratiques pour sa formation


Si nous parlons de la structure de l'application et de l'application de recommandations pratiques lors de sa crĂ©ation, les outils de ligne de commande angulaire peuvent fournir au moins une aide au programmeur. DĂ©velopper une application angulaire (ou toute autre application), c'est comme construire une maison. À savoir, nous parlons de mĂ©thodes pratiques qui ont Ă©tĂ© dĂ©veloppĂ©es et optimisĂ©es par la communautĂ© des dĂ©veloppeurs depuis des annĂ©es. L'utilisation de telles techniques pour structurer des applications conduit Ă  l'Ă©mergence de projets de haute qualitĂ©. En fait, cela s'applique Ă  Angular.

Lorsque des programmeurs novices essayant d'apprendre Angular se plaignent de ce cadre, la raison de ces plaintes est généralement un manque de connaissances sur la structure des applications. Les débutants comprennent facilement la syntaxe, ici ils n'ont aucun problÚme. Mais trouver la bonne approche pour structurer les applications est beaucoup plus difficile pour eux. Ici, vous devez comprendre le domaine pour lequel l'application est créée, vous devez connaßtre les exigences de l'application et comment la réalité et les attentes sont liées aux niveaux conceptuel et pratique.

L'étude des options possibles pour les structures d'applications angulaires et des recommandations pratiques pour l'utilisation de ces structures donnera au programmeur une vision de la façon de créer ses propres projets.

▍Rechercher des requĂȘtes


  • Applications angulaires Ă  repo unique (applications angulaires hĂ©bergĂ©es dans un rĂ©fĂ©rentiel unique).
  • BibliothĂšques angulaires (bibliothĂšques angulaires).
  • Paquets angulaires.
  • Bundles angulaires (Bundles angulaires).
  • Micro applications angulaires.
  • Monorepo (Monorepositoires).

8. Syntaxe et modÚles de liaison de données


La liaison, ou liaison de donnĂ©es, est peut-ĂȘtre la caractĂ©ristique la plus notable des frameworks JavaScript. C'est aussi l'une des raisons pour lesquelles les cadres existent gĂ©nĂ©ralement. La liaison de donnĂ©es dans les modĂšles est le pont entre HTML statique et JavaScript. La syntaxe de liaison de donnĂ©es dans les modĂšles angulaires joue le rĂŽle d'un intermĂ©diaire pour aider Ă  communiquer les entitĂ©s HTML et JavaScript.

AprĂšs avoir appris comment et quand utiliser les ancres, vous pouvez facilement transformer des pages statiques en quelque chose d'interactif. Dans ce domaine, il est recommandĂ© de prĂȘter attention aux diffĂ©rents scĂ©narios de liaison de donnĂ©es. Par exemple, il s'agit d'une liaison de propriĂ©tĂ©s, d'Ă©vĂ©nements, c'est une interpolation de donnĂ©es et une liaison bidirectionnelle.

▍Rechercher des requĂȘtes


  • Reliure de propriĂ©tĂ© angulaire.
  • Liaison d'Ă©vĂ©nement angulaire.
  • Liaison angulaire bidirectionnelle (liaison de donnĂ©es angulaire bidirectionnelle).
  • Interpolation angulaire (Interpolation en angulaire).
  • Constantes de passage angulaires (Constantes de passage angulaires).

9. Modules de fonctionnalités et routage


Les modules de fonctionnalités dans Angular sont une technologie sous-estimée. En fait, ces modules fournissent au développeur un moyen fantastique d'organiser et d'isoler des ensembles d'exigences métier pour les applications. Ils contribuent à limiter la responsabilité des fragments de code et à prévenir, à long terme, la pollution du code.

Il existe cinq types de modules de fonctionnalitĂ© (domaine, routĂ©, routage, service, widget), chacun d'eux est responsable de la mise en Ɠuvre d'une certaine fonctionnalitĂ©. Apprendre Ă  utiliser les modules de fonctionnalitĂ©s conjointement avec le routage peut aider Ă  crĂ©er des blocs de fonctionnalitĂ©s distincts. Cela aidera et implĂ©mentera dans les applications un schĂ©ma clair et de haute qualitĂ© de sĂ©paration des responsabilitĂ©s.

▍Rechercher des requĂȘtes


  • Modules d'entitĂ©s angulaires (modules d'entitĂ©s angulaires).
  • Structures d'entitĂ©s partagĂ©es dans Angular.
  • Fournisseurs de modules de fonctionnalitĂ©s.
  • Chargement paresseux avec routage et modules de fonctionnalitĂ©s (Chargement paresseux avec routage et modules de fonctionnalitĂ©s).

10. Formulaires et validation des données (formulaires réactifs et validateurs)


Les formulaires sont une partie inévitable de tout développement frontal. Et lorsque des formulaires sont utilisés, la validation des données est également nécessaire.

Angular a différentes maniÚres de construire des formulaires intelligents basés sur les données. Les formes réactives sont particuliÚrement populaires. Cependant, il existe d'autres options, en particulier - ce sont des formulaires dont la validation est basée sur des modÚles, ainsi que l'utilisation de validateurs personnalisés.

Apprendre comment les validateurs et CSS fonctionnent ensemble aidera à accélérer le développement d'applications et à faciliter la gestion des erreurs dans les formulaires.

▍Rechercher des requĂȘtes


  • Validation de forme angulaire.
  • Validation pilotĂ©e par modĂšle
  • Validation de formulaire rĂ©active.
  • Validateurs de synchronisation et asynchrone en angulaire (validateurs synchrones et asynchrones en angulaire).
  • Validateurs intĂ©grĂ©s.
  • Validateurs personnalisĂ©s angulaires.
  • Validation transversale.

11. Projection de contenu


Angular a un mécanisme appelé projection de contenu. Il vous permet d'organiser le transfert efficace des données des composants parents vers les composants enfants. Bien que l'idée de projeter du contenu puisse sembler compliquée, son essence réside dans le fait que pour construire un élément affiché à l'écran, certains éléments sont placés dans d'autres.

Les développeurs étudient souvent la projection de contenu au niveau d'une surface, par exemple, en s'habituant au schéma dans lequel un composant enfant est incorporé dans le composant parent. Mais afin d'élargir notre compréhension de ce concept, nous devons également comprendre comment les données sont transférées entre les différents composants visuels. C'est là que la compréhension des fonctionnalités de la projection de contenu sera trÚs utile.

La comprĂ©hension de ce concept permet de comprendre les caractĂ©ristiques du mouvement des flux de donnĂ©es au sein de l'application, et oĂč exactement les mutations de ces donnĂ©es se produisent.

▍Rechercher des requĂȘtes


  • Projection de contenu angulaire.
  • Relation de vue parent-enfant angulaire (Relation parent-enfant angulaire et composantes visuelles d'Angular).
  • Relations de donnĂ©es de vue angulaire.

12. Stratégie de détection des changements onPush


Par dĂ©faut, Angular utilise une stratĂ©gie de dĂ©tection de changement standard. Avec cette approche, les contrĂŽles des composants sont en cours. Bien qu'il n'y ait rien de mal Ă  cela, cette approche pour dĂ©tecter les changements peut ne pas ĂȘtre efficace.

Si nous parlons de petites applications, leurs performances ne sont pas particuliÚrement affectées. Mais une fois que l'application atteint une certaine taille, sa vitesse, en particulier lorsqu'elle est lancée dans des navigateurs plus anciens, peut se détériorer.

La onPush détection des modifications onPush peut accélérer considérablement l'application. Le fait est que lorsqu'il est utilisé, les contrÎles ne sont effectués que lorsque certains événements se produisent. C'est bien mieux que des contrÎles constants.

▍Rechercher des requĂȘtes


  • DĂ©tection de changement angulaire onPush (stratĂ©gie de dĂ©tection de changement angulaire onPush).

13. Restreindre l'accÚs aux itinéraires, préchargement, chargement paresseux


Si votre projet dispose de mécanismes qui fournissent un accÚs utilisateur au systÚme, cela signifie que vous devez utiliser la restriction d'accÚs aux itinéraires. De nombreuses applications nécessitent la capacité de protéger certaines pages contre une visualisation non autorisée. Les restrictions d'accÚs aux itinéraires fonctionnent comme une interface entre le routeur et l'itinéraire demandé. Ils décident si l'accÚs à un itinéraire particulier est autorisé dans une certaine situation. Dans le domaine de la protection des itinéraires, il y a beaucoup à apprendre. En particulier, il s'agit d'une prise de décision basée sur l'analyse de la période de validité du jeton, l'utilisation de rÎles d'authentification et la fourniture d'un travail sûr avec les routes.

Le préchargement et le chargement paresseux des données peuvent améliorer l'expérience utilisateur de travailler avec le site en réduisant le temps de chargement des applications. Il sera utile de dire que les technologies de chargement pré-paresseux ne sont pas uniquement liées aux images. Ces technologies sont utilisées lors de la division des bundles d'applications en plusieurs parties et lors du chargement de différentes parties de ces bundles dans différentes conditions.

▍Rechercher des requĂȘtes


  • Gardes de route angulaires (restriction de l'accĂšs aux routes angulaires).
  • ModĂšles d'authentification angulaires.
  • Modules de prĂ©chargement angulaire et de chargement diffĂ©rĂ© (modules de prĂ©chargement et de chargement diffĂ©rĂ© en angulaire).
  • ModĂšles de route sĂ©curisĂ©s angulaires.

14. Convoyeurs personnalisés


Les pipelines angulaires facilitent le formatage des données. Il existe de nombreux convoyeurs intégrés qui vous permettent de résoudre un large éventail de tùches standard. Parmi celles-ci figurent les tùches de mise en forme des dates, des montants en devises, des valeurs en pourcentage, ainsi que, par exemple, de travailler avec la casse des caractÚres. Cependant, il y a toujours une tùche pour laquelle il n'y a pas de convoyeur standard.
C'est dans de tels cas que des pipelines personnalisĂ©s sont nĂ©cessaires. Ce mĂ©canisme permet au programmeur de crĂ©er ses propres filtres et de dĂ©crire les transformations de donnĂ©es dont il a besoin. Utiliser tout cela n'est pas difficile, donc ce concept peut ĂȘtre recommandĂ© pour l'Ă©tude.

▍Rechercher des requĂȘtes


  • Tuyaux angulaires personnalisĂ©s.

15. Décorateurs @ViewChild et @ContentChild


Les composants peuvent communiquer entre eux grĂące aux @ContentChild @ViewChild et @ContentChild . L'essence d'Angular est de faire en sorte que les applications multi-composants créées Ă  l'aide de ce cadre ressemblent Ă  un puzzle. Mais un tel casse-tĂȘte ne sera pas d'une grande utilitĂ© si ses fragments sont isolĂ©s les uns des autres.

Pour connecter les piÚces du puzzle entre elles, les décorateurs @ViewChild et @ContentChild . L'étude des caractéristiques de leur utilisation vous donnera l'opportunité de travailler avec des composants associés à d'autres composants. Cela simplifie la tùche d'organisation du partage de données entre les différents composants. Cela vous permet de transférer des données et des informations sur les événements qui se produisent dans ces composants entre les composants.

▍Rechercher des requĂȘtes


  • DĂ©corateurs angulaires (DĂ©corateurs angulaires).
  • Viewchild et contentchild dans Angular (Decorators @ViewChild et @ContentChild dans Angular).
  • Partage de donnĂ©es de composants angulaires.

16. Composants dynamiques et directive ng-template


Les composants sont les blocs de construction des applications angulaires. Cependant, tous les composants ne doivent pas ĂȘtre créés Ă  l'avance. Certains d'entre eux doivent ĂȘtre créés pendant l'exĂ©cution du programme.
Les composants dynamiques permettent à une application de créer ce dont elle a besoin pendant son exécution.

Les composants statiques, contrairement aux composants dynamiques, sont créés Ă  l'avance. Cette opĂ©ration est effectuĂ©e dans les cas oĂč les composants ne devraient pas ĂȘtre affectĂ©s. Ils sont prĂ©visibles, d'une maniĂšre prĂ©dĂ©terminĂ©e, effectuant des conversions des donnĂ©es qui les saisissent.

Les composants dynamiques, en revanche, sont créés en fonction des besoins. Ils s'avĂšrent trĂšs utiles lors du dĂ©veloppement d'applications qui fonctionnent avec des sources de donnĂ©es externes. Ils sont utiles mĂȘme lorsque vous devez organiser la rĂ©action de l'application aux actions se produisant sur la page.

▍Rechercher des requĂȘtes


  • Composants dynamiques en angulaire.
  • Composants dynamiques et ng-templating (Composants dynamiques et directive ng-template).

17. @Host Decorators @Host , @HostBinding et exportAs


Les @HostBinding @Host , @HostBinding et la directive @HostBinding exportAs utilisés dans Angular pour contrÎler ce à quoi ils s'appliquent. De plus, ils permettent de créer des modÚles concis pour l'exportation d'entités utilisables dans l'application.

Si ce qui prĂ©cĂšde ne vous semble pas particuliĂšrement clair, nous vous recommandons de vous familiariser avec les directives et de dĂ©couvrir pourquoi elles sont nĂ©cessaires. Les @HostBinding @Host , @HostBinding et la directive @HostBinding sont ce qui aide Angular Ă  ĂȘtre ce qu'il est.

▍Rechercher des requĂȘtes


  • ModĂšles de directives angulaires (ModĂšles de directives angulaires).
  • @Host , @HostBinding et exportAs dans Angular (Decorators @Host , @HostBinding et la directive exportAs dans Angular).

18. Gestion de l'état des applications à l'aide de NgRx


L'Ă©tat de l'application est dĂ©terminĂ© par ce que voit l'utilisateur. Si la confusion rĂšgne dans l'Ă©tat de l'application, cela peut indiquer que les structures de donnĂ©es utilisĂ©es dans celui-ci sont mal adaptĂ©es aux changements. De telles modifications peuvent devoir ĂȘtre apportĂ©es aux structures de donnĂ©es Ă  mesure que l'application grandit et se dĂ©veloppe.

Alors que quelqu'un commence à comprendre les spécificités du travail avec l'état dans Angular, il aborde également la compréhension des spécificités du comportement des données dans ses applications.

Angular a son propre systĂšme de gestion d'Ă©tat. Cependant, il existe une technologie, NgRx, qui vous permet de porter la gestion de l'Ă©tat des applications Ă  un niveau supĂ©rieur. En particulier, par exemple, des donnĂ©es peuvent ĂȘtre perdues lors du transfert entre une pluralitĂ© de composants parents et des composants enfants. Et NgRx vous permet de crĂ©er un rĂ©fĂ©rentiel centralisĂ© et de vous dĂ©barrasser de ce problĂšme.

▍Rechercher des requĂȘtes


  • Angular NgRx (Utilisation de RxJS en angulaire).
  • Principes Flux / Redux.
  • Principes de gestion de l'Ă©tat angulaire.

19. Dépendance et injection de zone


L'injection de dépendance est un concept massif et universel. Si vous ne le connaissez pas trÚs bien, vous devriez l'étudier. Angular a plusieurs façons d'injecter avec précision les dépendances. Ceci est principalement réalisé grùce à l'utilisation de constructeurs. Il s'agit d'importer dans le code uniquement ce qui est vraiment nécessaire. Cela permet d'améliorer les performances des applications.

Le concept de zones, comme l'idĂ©e d'injection de dĂ©pendances, n'est pas propre Ă  Angular. Il s'agit d'un mĂ©canisme qui permet Ă  une application de surveiller l'Ă©tat des tĂąches asynchrones tout au long de leur cycle de vie. — , , — , . .

▍


  • Angular zones ( Angular).
  • Dependency injections ( ).
  • Angular DI ( Angular).

Résumé


Angular- — . — - , , , . . , , Angular, .

Chers lecteurs! Angular-?

Source: https://habr.com/ru/post/fr455503/


All Articles