pages
Le répertoire pages contient les vues et les routes de vos applications. Nuxt lit tous les fichiers .vue à l'intérieur de ce répertoire et crée automatiquement la configuration du routeur pour vous.
Chaque composant de Page est un composant Vue mais Nuxt ajoute des attributs et des fonctions spéciales pour rendre le développement de votre application universelle aussi facile que possible.
<template>
  <h1 class="red">Bonjour {{ name }}!</h1>
</template>
<script>
  export default {
    // les propriétés de la page vont ici
  }
</script>
<style>
  .red {
    color: red;
  }
</style>
 Pages dynamiques
Les pages dynamiques peuvent être créées lorsque vous ne connaissez pas le nom de la page parce qu'il provient d'une API ou que vous ne voulez pas avoir à créer la même page encore et encore. Pour créer une page dynamique, vous devez ajouter un underscore (_) avant le nom du fichier .vue ou avant le nom du répertoire, si vous souhaitez que le répertoire soit dynamique. Vous pouvez nommer le fichier ou le répertoire comme vous le souhaitez, mais vous devez le faire précéder d'un underscore .
Si nous avons défini un fichier nommé _slug.vue dans notre répertoire pages, nous pouvons accéder à la valeur en utilisant le contexte avec params.slug
<template>
  <h1>{{ this.slug }}</h1>
</template>
<script>
  export default {
    async asyncData({ params }) {
      const slug = params.slug // En appelant /abc, le slug sera "abc".
      return { slug }
    }
  }
</script>
 Si nous avons défini un fichier nommé \_slug.vue dans un répertoire appelé \_book, nous pouvons accéder à la valeur en utilisant le contexte avec params.slug et params.book
<template>
  <h1>{{ this.book }} / {{ this.slug }}</h1>
</template>
<script>
  export default {
    async asyncData({ params }) {
      const book = params.book
      const slug = params.slug
      return { book, slug }
    }
  }
</script>
 Propriétés
asyncData
AsyncData est appelé à chaque fois avant le chargement du composant. Elle peut être asynchrone et reçoit le contexte en argument. L'objet renvoyé sera fusionné avec votre objet de données.
export default {
  asyncData (context) {
    return { name: 'World' }
  }
 fetch
Chaque fois que vous avez besoin d'obtenir des données asynchrones, vous pouvez utiliser fetch(). Fetch est appelé côté serveur lors du rendu de la route, et côté client lors de la navigation.
<script>
  export default {
    data() {
      return {
        posts: []
      }
    },
    async fetch() {
      this.posts = await fetch('https://api.nuxtjs.dev/posts').then(res =>
        res.json()
      )
    }
  }
</script>
 head
Définissez des balises
pour la page en cours. Nuxt utilisevue-meta pour mettre à jour l'en-tête du document et les méta attributs de votre application.
export default {
  head() {
    // Définit les balises Méta pour cette page
  }
}
 layout
Précisez une mise en page définie dans le répertoire des mises en page.
export default {
  layout: 'blog'
}
 loading
Si ce paramètre est défini sur false, il empêche une page d'appeler automatiquement this.$nuxt.$loading.finish() lorsque vous l'entrez et this.$nuxt.$loading.start() lorsque vous la quittez, ce qui vous permet de contrôler manuellement le comportement, comme le montre cet exemple .
export default {
  loading: false
}
 transition
Définit une transition spécifique pour la page.
export default {
  transition: 'fade'
}
 scrollToTop
La propriété scrollToTop vous permet de dire à Nuxt de faire défiler la page vers le haut avant de la rendre. Par défaut, Nuxt fait défiler la page vers le haut lorsque vous allez sur une autre page, mais avec les routes enfant, Nuxt garde la position de défilement. Si vous voulez dire à Nuxt de faire défiler la page vers le haut lors du rendu de votre route fille, mettez scrollToTop à true
export default {
  scrollToTop: true
}
 Inversement, vous pouvez aussi régler manuellement scrollToTop à false sur les routes parentes.
Si vous souhaitez remplacer le comportement de défilement par défaut de Nuxt, consultez l'option scrollBehavior .
middleware
Définit le middleware pour cette page qui sera appelé avant le rendu de la page.
export default {
  middleware: 'auth'
}
 La propriété watchQuery
Utilisez la propriété WatchQuery pour configurer un observateur (watcher) pour les chaînes de requête. Si les chaînes définies changent, toutes les méthodes du composants (asyncData, fetch, validate, layout, ...) seront appelées. Le watcher est désactivée par défaut pour améliorer les performances.
export default {
  watchQuery: ['page']
}
 watcher pour toutes les chaînes de requête, définissez watchQuery sur true.export default {
  watchQuery: true
}
 Vous pouvez également utiliser la fonction watchQuery(newQuery, oldQuery) pour avoir des observateurs plus raffinés.
export default {
  watchQuery(newQuery, oldQuery) {
    // Exécute les méthodes du composants que si l'ancienne chaîne de requête contenait `bar`.
    // et que la nouvelle chaîne de requête contient `foo`.
    return newQuery.foo && oldQuery.bar
  }
}
 key
Comme la propriété key qui peut être utilisée sur les composants Vue dans les modèles comme une indication pour le DOM virtuel, cette propriété permet à la valeur de la clé d'être définie à partir de la page elle-même (plutôt que le composant parent).
Par défaut dans Nuxt, cette valeur sera $route.path, ce qui signifie que naviguer vers une route différente assurera la création d'un composant de page propre. Logiquement équivalent à :
<router-view :key="$route.path" />
 La propriété peut être une String ou une Function qui prend la route comme premier argument.
Ignorer des pages
Si vous voulez ignorer des pages afin qu'elles ne soient pas généré dans le fichier router.js, alors vous pouvez les ignorer en les préfixant par un -.
Par exemple, pages/-about.vue sera ignorée.
Configuration
Vous pouvez renommer le répertoire pages/ en quelque chose de différent en définissant l'option dir.pages :
export default {
  dir: {
    // Renommer le répertoire `pages` en `routes`.
    pages: 'routes'
  }
}
 
 
        Sébastien Chopin
       
 
        Nazaré da Piedade
       
 
        Nobu
       
 
        川音리오
       
 
        Maciek Palmowski
       
 
        Nestor Vera
       
 
        Daniel Roe
       
 
        Yue Yang
       
 
        Jeronimas
       
 
        Alessandro Carrano
       
 
        Clément Ollivier
       
 
        Alexander Lichter
       
 
        N3-rd
       
 
        Adrien Zaganelli
       
 
        Mag
       
 
        Stefan Huber
       
 
        Olga Bulat
       
 
        Paiva
       
 
        Florian Reuschel
       
 
        Savas Vedova
       
 
        Steven
       
 
        Vinícius Alves
       
 
        Kareem Dabbeet
       
 
        Valentín Costa
       
 
        Ryan Skinner
       
 
        Alex Hirzel
       
 
        Ajeet Chaulagain
       
 
        René Eschke
       
 
        Nico Devs
       
 
        Muhammad
       
 
        Naoki Hamada
       
 
        Tom
       
 
        Yann Aufray
       
 
        Anthony Chu
       
 
        Nuzhat Minhaz
       
 
        Lucas Portet
       
 
        Richard Schloss
       
 
        Bobby
       
 
        bpy
       
 
        Antony Konstantinidis
       
 
        Hibariya
       
 
        Jose Seabra
       
 
        Eze
       
 
        Florian Lefebvre
       
 
        Lucas Recoaro
       
 
        Julien SEIXAS