|
| 1 | +--- |
| 2 | +title: "API: La méthode asyncData" |
| 3 | +description: Vous voudrez peut-être récupérer des données et faire le rendu côté serveur. Nuxt.js ajoute une méthode `asyncData` vous permettant de gérer des opérations asynchrones avant de définir les données du composant. |
| 4 | +--- |
| 5 | + |
| 6 | +# La méthode asyncData |
| 7 | + |
| 8 | +> Vous voudrez peut-être récupérer des données et faire le rendu côté serveur. Nuxt.js ajoute une méthode `asyncData` vous permettant de gérer des opérations asynchrones avant de définir les données du composant. |
| 9 | +
|
| 10 | +- **Type:** `Function` |
| 11 | + |
| 12 | +`asyncData` est appelée avant chaque chargement de composant (**uniquement pour les composants pages**). Elle peut être appelée côté serveur ou avant de nvaiguer sur la route correspondante. Cette méthode reçoit le **context** (objet) comme premier argument; vous pouvez l'utiliser afin de récupérer des données et retourner les données du composant. |
| 13 | + |
| 14 | +Le résultat d'asyncData sera **mergé** avec les données. |
| 15 | + |
| 16 | +```js |
| 17 | +export default { |
| 18 | + data () { |
| 19 | + return { project: 'default' } |
| 20 | + }, |
| 21 | + asyncData (context) { |
| 22 | + return { project: 'nuxt' } |
| 23 | + } |
| 24 | +} |
| 25 | +``` |
| 26 | + |
| 27 | +<div class="Alert Alert--orange">Vous **n'avez pas** accès à l'instance du composant via `this` au sein de `data` parce que la fonciton est appelée **avant d'initialiser** le composant.</div> |
| 28 | + |
| 29 | +## Context |
| 30 | + |
| 31 | +Liste des key disponibles dans `context`: |
| 32 | + |
| 33 | +| Key | Type | Disponibilité | Description | |
| 34 | +|-----|------|--------------|-------------| |
| 35 | +| `isClient` | Boolean | Client & Serveur | Booléen vous permettant de savoir si vous faites le rendu côté client | |
| 36 | +| `isServer` | Boolean | Client & Serveur | Booléen vous permettant de savoir si vous faites le rendu côté serveur | |
| 37 | +| `isDev` | Boolean | Client & Serveur | Booléen vous permettan de savoir si vous êtes en mode dev, peut être utile pour cacher certaines données en production | |
| 38 | +| `route` | [vue-router route](https://router.vuejs.org/en/api/route-object.html) | Client & Server | `vue-router` route instance. | |
| 39 | +| `store` | [vuex store](http://vuex.vuejs.org/en/api.html#vuexstore-instance-properties) | Client & Server | `Vuex.Store` instance. **Disponible uniquement si [vuex store](/guide/vuex-store) est configuré.** | |
| 40 | +| `env` | Object | Client & Serveur | Variables d'environnement configurées dans `nuxt.config.js`, voir [env api](/api/configuration-env) | |
| 41 | +| `params` | Object | Client & Serveur | Alias de route.params | |
| 42 | +| `query` | Object | Client & Serveur | Alias de route.query | |
| 43 | +| `req` | [http.Request](https://nodejs.org/api/http.html#http_class_http_incomingmessage) | Serveur | Requête du serveur node.js. Si nuxt est utilisé comme middleware, l'objet req pourrait être différent en fonction du framework que vous utilisez. **Non disponible via `nuxt generate`*. | |
| 44 | +| `res` | [http.Response](https://nodejs.org/api/http.html#http_class_http_serverresponse) | Serveur | Réponse du serveur node.js. Si nuxt est utilisé comme middleware, l'bjet res pourrait être différent en fonction du framework que vous utilisez. **Non disponible via `nuxt generate`*. | |
| 45 | +| `redirect` | Function | Client & Serveur | Utilisez cette méthode pour rediriger l'utilisateur d'une route à une autre; le code de statut utilisé côté serveur par défaut est 302. `redirect([status,] path [, query])` | |
| 46 | +| `error` | Function | Client & Serveur | Utilisez cette méthode pour afficher la page d'erreur: `error(params)`. `params` devrait avoir les champs `statusCode` et `message`. | |
0 commit comments