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 ?
 
        Leoš Literák
       
 
        Trizotti
       
 
        Clément Ollivier
       
 
        Sébastien Chopin
       
 
        Marcello Bachechi
       
 
        Rodolphe
       
 
        Thomas Underwood
       
 
        Shek Evgeniy
       
 
        felipesuri
       
 
        Lukasz Formela
       
 
        Hugo Torzuoli
       
 
        Sylvain Marroufin
       
 
        Kareem Dabbeet
       
 
        tramplay
       
 
        Daniel Roe
       
 
        verebelyicsaba
       
 
        Adam
       
 
        Nate Butler
       
 
        Sandra Rodgers
       
 
        Arpit Patidar
       
 
        Matthew Kuehn
       
 
        Steven DUBOIS
       
 
        Travis Lindsey
       
 
        syagawa
       
 
        Maxime
       
 
        かる
       
 
        Al Power
       
 
        Florent Delerue
       
 
        quanghm
       
 
        José Manuel Casani Guerra
       
 
        Unai Mengual
       
 
        kazuya kawaguchi
       
 
        Michael Lynch
       
 
        Tomachi
       
 
        pooya parsa
       
 
        Meir Roth
       
 
        Brett
       
 
        Adam Miedema
       
 
        Thomas Bnt
       
 
        Kazuki Furukawa
       
 
        Anthony Ruelle
       
 
        Christophe Carvalho Vilas-Boas
       
 
        Roman Harmyder