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-?
