Angular
mappe le chemin de l'URL vers un composant pertinent et affiche sa vue.
L'animation de cette transition de route peut considérablement améliorer l'expérience utilisateur.Angular
est livré avec des fonctions d'animation de haut niveau qui vous permettent d'animer les transitions entre les vues lors du changement de route.
Pour produire une séquence d'animation lors du basculement entre les itinéraires, vous devez définir des séquences d'animation imbriquées.
Commencez avec le composant de niveau supérieur qui héberge la vue et imbriquez des animations supplémentaires dans les composants hébergeant les vues intégrées.DOM
.Home
et About
, associées respectivement aux vues HomeComponent
et AboutComponent
.
Ces deux vues de composant sont les enfants de la vue la plus haute hébergée par AppComponent
.
Nous allons implémenter une animation de transition de routeur qui glisse dans la nouvelle vue vers la droite et qui sort de l'ancienne vue lorsque l'utilisateur navigue entre les deux routes.RouterModuleclasse
.
Cette configuration d'itinéraire indique au routeur comment naviguer.RouterModule.forRoot
pour définir un ensemble de routes.
En outre, importer ce RouterModule
au tableau imports du module principal, AppModule
.RouterModule.forRoot
du module racine AppModule
, pour enregistrer les itinéraires et les fournisseurs d'applications de niveau supérieur.
Pour les modules de fonctionnalité, appelez la méthode RouterModule.forChild
pour enregistrer des itinéraires supplémentaires.home
et about
sont associés aux vues HomeComponent
et AboutComponent
.
La configuration de la route indique au routeur Angular
d'instancier les vues HomeComponent
et AboutComponent
lorsque la navigation correspond au chemin correspondant.AppComponent
lorsque la route change.
Vous pouvez également transmettre des données supplémentaires dans la configuration de la route utilisée dans l'animation.
La valeur de la propriété data doit correspondre aux transitions définies dans le déclencheur routeAnimation
, que nous définirons plus tard.Angular
où restituer les vues lorsqu'elles sont associées à un itinéraire.
Vous pouvez définir une prise de routeur en insérant un conteneur ‹router-outlet›
à l'intérieur du modèle AppComponent
racine.‹router-outlet›
possède une directive d'attribut contenant des données sur les itinéraires actifs et leurs états,
en fonction de la propriété data définie dans la configuration de l'itinéraire.AppComponent
définit une méthode capable de détecter le changement de vue.
La méthode attribue une valeur d'état d'animation à l'animateur trigger (@routeAnimation
) en fonction de la valeur data de la propriété de configuration de l'itinéraire.
Voici un exemple de méthode qui détecte quand un changement d'itinéraire se produit.prepareRoute()
prend la valeur de la directive de sortie (établie via #outlet="outlet"
) et renvoie une valeur de chaîne représentant l'état de l'animation
en fonction des données personnalisées de la route active en cours. Vous pouvez utiliser ces données pour contrôler la transition à exécuter pour chaque route.slideInAnimation
.query()
pour déterminer la vue enfant qui entre et celle qui quitte la vue hôte.slideInAnimation
) aux métadonnées animations du fichier AppComponent
.style
aux vues anime les conteneurs en place, sans que le DOM
ne déplace des éléments.query()
pour rechercher et animer des éléments dans le composant hôte actuel.
L'instruction query(":enter")
renvoie la vue en cours d'insertion et la query(":leave")
vue en cours de suppression.Home => About
.query(':enter style({ left: '-100%'})
correspond à la vue ajoutée et masque la vue nouvellement ajoutée en la plaçant à l'extrême gauche.animateChild()
appelle la vue qui s'en va pour lancer ses animations enfants.group()
pour que les animations internes s'exécutent en parallèle.fonction : group()
about
la vue de gauche à droite.animateChild()
appelle sur la nouvelle vue pour qu'elle exécute ses animations enfants une fois l'animation principale terminée.