Mode de prévisualisation
Avec Nuxt et une génération axée sur de l'intégralement statique, nous pouvons maintenant utiliser la prévisualisation en temps réel, sans configuration additionnelle. Cela nous permettra d'appeler notre API ou notre CMS afin que nous puissions voir les changements avant de déployer.
Le mode de prévisualisation va s'occuper de rafraîchir automatiquement la data de la page vu qu'il utilise $nuxt.refresh (et donc fait les appels de nuxtServerInit, asyncData et fetch) du côté client.
Pour activer la prévisualisation en temps réel, il faudra ajouter le plugin suivant:
export default function ({ query, enablePreview }) {
if (query.preview) {
enablePreview()
}
}
EnablePreview est seulement disponible dans l'objet contexte des plugins. Les prévisualisations sont gérées côté client et donc, le plugin doit s'exécuter sur le client: preview.client.jsexport default {
plugins: ['~/plugins/preview.client.js']
}
Une fois que l'on a ajouté le plugin, on peut maintenant générer et servir notre site.
yarn generate
yarn start
npm run generate
npm run start
Nous pouvons maintenant voir la page de prévisualisation en ajoutant une query param à la fin de la page qui nous intéresse:
?preview=true
enablePreview doit être testé localement avec yarn start et non yarn devPrévisualiser les pages qui ne sont pas encore générées
Pour les pages qui ne sont pas encore générées, la solution de rechange de la SPA va continuer de s'occuper de faire un appel à l'API avant de montrer une page 404 vu que ces pages existent sur l'API mais ne sont pas encore générées.
Si nous avons configuré un crochet de validation (webhook), on aura sans doute besoin de le modifier afin d'accommoder le fait qu'il ne redirige plus vers une 404 en mode de prévisualisation.
validate({ params, query }) {
if (query.preview) {
return true
}
Passer la data à enablePreview
On peut passer de la data à la fonction enablePreview. La data sera ainsi disponible sur le helper de contexte $preview et sur this.$preview.
Et ensuite ?
Clément Ollivier
Daniel Roe
Alex Hirzel
Ajeet Chaulagain
René Eschke
Sébastien Chopin
Nico Devs
Muhammad
Nazaré da Piedade
Naoki Hamada
Tom
Yann Aufray
Anthony Chu
Nuzhat Minhaz
Lucas Portet
Richard Schloss
Xanzhu
bpy
Antony Konstantinidis
Hibariya
Jose Seabra
Eze
Florian LEFEBVRE
Lucas
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 Ashimine
FamCodings
Ayouli
F. Hinkelmann
felipesuri
Christophe Carvalho Vilas-Boas
Leoš Literák
Trizotti
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
Lukasz Formela
Hugo Torzuoli