Cycles de vie de Nuxt
Peu importe l'outil que nous utilisons, nous serons davantage en confiance lorsque nous serons capable de comprendre comment il marche dans les détails. Il en est de même pour Nuxt. Le but de ce chapitre est de nous donner une vue d'ensemble des différentes parties du framework, leur ordre d'exécution ainsi que la façon dont ils intéragissent entre eux.
Le cycle de vie de Nuxt décrit les différentes étapes qui ont lieu après la phase de build, une fois que notre application a été bundlée, chunkée et minifiée. Ce qu'il se passe après cette phase dépend de si nous avons activé le rendu côté serveur ou pas. Si c'est le cas, il faut ensuite regarder le type de rendu serveur que nous avons choisi:
Rendu dynamique côté serveur (SSR) (nuxt start)
ou Génération statique de site (SSG) (nuxt generate).
Cycle de vie
Serveur
Pour le SSR, les étapes suivantes seront exécutées pour chaque requête sur notre app
-
Le serveur démarre (
nuxt start)
Lorsque nous utilisons la génération statique de notre site, les étapes qui ont lieu sur le serveur ne seront exécutées que lors de la phase de build et une fois pour chaque page générée.
-
Le processus de génération commence (
nuxt generate) - Hooks Nuxt
- serverMiddleware
-
Les plugins de Nuxt côté serveur
- en suivant l'ordre défini dans nuxt.config.js
-
nuxtServerInit
- action Vuex qui est appelée seulement côté serveur pour pré-remplir le store
-
le premier argument dans le context de Vuex, le second argument dans le context de Nuxt
- on dispatch les autres actions d'ici → c'est seulement le "point d'entrée" pour des actions ultérieures du côté serveur
-
peut seulement être défini dans le
store/index.js
-
Middleware
- Global middleware
- Layout middleware
- Route middleware
- asyncData
- beforeCreate (cycle de vie de Vue)
- created (cycle de vie de Vue)
- Le nouveau fetch (du haut vers le bas, en parallèle si ce sont des voisins)
-
Sérialisation du state (hook
render:routeContextde Nuxt) -
le rendu HTML commence (hook
render:routede Nuxt) -
render:routeDonehook quand le HTML a été envoyé au navigateur -
generate:beforehook de Nuxt -
les fichiers HTML sont générés
-
génération intégralement statique
- ex. les payloads statiques sont extraits
-
generate:page(HTML éditable) -
generate:routeCreated(Route générée)
-
génération intégralement statique
-
generate:donequand tous les fichiers HTML ont été générés
Client
Cette partie du cycle est entièrement exécutée dans le navigateur, peu importe le mode que nous avons choisi pour Nuxt.
- Reçoit le HTML
- Charge les ressources (ex. Javascript)
- Hydratation de Vue
-
Middleware
- Global middleware
- Layout middleware
- Route middleware
- asyncData (bloquant)
-
plugins clients de Nuxt
- en suivant l'ordre défini dans nuxt.config.js
- beforeCreate (méthode du cycle de vie de Vue)
- created (méthode du cycle de vie de Vue)
- Le nouveau fetch (du haut vers le bas, en parallèle si ce sont des voisins)
- beforeMount (méthode du cycle de vie de Vue)
- mounted (méthode du cycle de vie de Vue)
Naviguer en utilisant le composant NuxtLink
De la même façon que pour la partie client, tout se passe dans le navigateur mais seulement lors d'une navigation avec <NuxtLink>. De plus, aucun contenu n'est affiché sur la page tant qu'il reste des tâches bloquantes.
<NuxtLink> .-
middleware (bloquant)
- Global middleware
- Layout middleware
- Route middleware
- asyncData (bloquant)
- asyncData (bloquant) ou chargement entièrement statique du payload
- beforeCreate & created (méthode du cycle de vie de Vue)
- fetch (non-bloquant)
- beforeMount & mounted
Ensuite ?
Paiva
Florian Reuschel
Sébastien Chopin
Daniel Roe
Rishi Raj Jain
Clément Ollivier
Savas Vedova
Steven Soekha
Vinícius Alves
Kareem Dabbeet
Valentín Costa
Ryan Skinner
Alex Hirzel
Ajeet Chaulagain
René Eschke
Nico Devs
Muhammad
Nazaré da Piedade
Naoki Hamada
Tom
Yann Aufray
Anthony Chu
Nuzhat Minhaz
Lucas Portet
Richard Schloss
bpy
Antony Konstantinidis
Hibariya
Jose Seabra
Eze
Florian LEFEBVRE
Lucas Recoaro
Julien SEIXAS
Hugo
Sylvain Marroufin
Spencer Cooley
Piotr Zatorski
Vladimir Semenov
Harry Allen
kazuya kawaguchi
Unai Mengual
Hyunseung Lee
Alexandre Chopin
pooya parsa
Nick Medrano
Mosaab Emam
Iljs Путлер Капут
Heitor Ramon Ribeiro
Nero
Yoon Han
Ikko Eltociear Ashimine
FamCodings
Ayouli
F. Hinkelmann
felipesuri
Christophe Carvalho Vilas-Boas
Leoš Literák
Trizotti