Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit 9be3909

Browse files
committed
Translate Guide/Plugins
1 parent f45f0f1 commit 9be3909

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

fr/guide/plugins.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
---
2+
title: Plugins
3+
description: Nuxt.js vous permet de définir les plugins js à exécuter avant d'instancier l'application vue.js racine, il peut s'agir d'utiliser votre propre bibliothèque ou des modules externes.
4+
---
5+
6+
> Nuxt.js vous permet de définir les plugins js à exécuter avant d'instancier l'application vue.js racine, il peut s'agir d'utiliser votre propre bibliothèque ou des modules externes.
7+
8+
<div class="Alert">Il est important de savoir que, dans le [cycle de vie d'une instance de Vue](https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram), les *hooks* `beforeCreate` et` created` sont appelés **à la fois côté client et du côté serveur**. Tous les autres *hooks* ne sont appelés que du client.</div>
9+
10+
## Modules externes
11+
12+
Nous souhaitons utiliser des packages/modules externes dans notre application, un excellent exemple est [axios](https://github.com/mzabriskie/axios) pour les requêtes HTTP pour le serveur et le client.
13+
14+
Nous l'installons via npm:
15+
16+
```bash
17+
npm install --save axios
18+
```
19+
20+
Puis, nous pouvons l'utiliser directement dans nos pages:
21+
22+
```html
23+
<template>
24+
<h1>{{ title }}</h1>
25+
</template>
26+
27+
<script>
28+
import axios from 'axios'
29+
30+
export default {
31+
async data ({ params }) {
32+
let { data } = await axios.get(`https://my-api/posts/${params.id}`)
33+
return { title: data.title }
34+
}
35+
}
36+
</script>
37+
```
38+
39+
Mais il y a **un problème**, si nous importons axios dans une autre page, il sera à nouveau inclus dans le bundle de la page. Nous voulons inclure `axios` une seule fois dans notre application, pour cela, nous utilisons la clé `build.vendor` dans notre `nuxt.config.js`:
40+
41+
```js
42+
module.exports = {
43+
build: {
44+
vendor: ['axios']
45+
}
46+
}
47+
```
48+
49+
Ensuite, je peux importer `axios` partout sans avoir à m'inquiéter de l'importer plusieurs fois et de rendre le bundle plus lourd.
50+
51+
## Plugins Vue
52+
53+
Si nous voulons utiliser [vue-notifications](https://github.com/se-panfilov/vue-notifications) pour afficher des notifications dans notre application, nous devons configurer le plugin avant de lancer l'application.
54+
55+
Dans `plugins/vue-notifications.js`:
56+
```js
57+
import Vue from 'vue'
58+
import VueNotifications from 'vue-notifications'
59+
60+
Vue.use(VueNotifications)
61+
```
62+
63+
Puis, nous ajoutons le fichier dans l'attribut `plugins` de `nuxt.config.js`:
64+
```js
65+
module.exports = {
66+
plugins: ['~plugins/vue-notifications']
67+
}
68+
```
69+
70+
Pour en savoir plus sur l'attribut `plugins`, voir [plugins api](/api/configuration-plugins).
71+
72+
Acutellement, `vue-notifications` sera inclu dans le bundle de l'application; mais comme il s'agit d'une librairie, nous voulons l'inclure dans le bundle `vendor` pour une meilleure mise en cache.
73+
74+
Nous pouvons mettre à jour `nuxt.config.js` pour ajouter `vue-notifications` dans le bundle `vendor`:
75+
```js
76+
module.exports = {
77+
build: {
78+
vendor: ['vue-notifications']
79+
},
80+
plugins: ['~plugins/vue-notifications']
81+
}
82+
```
83+
84+
## Côté client uniquement
85+
86+
Certains plugins fonctionnent **uniquement côté navigateur**. Vous pouvez utiliser l'option `ssr: false` dans `plugins` pour exécuter le fichier uniquement côté client.
87+
88+
Exemple:
89+
90+
`nuxt.config.js`:
91+
```js
92+
module.exports = {
93+
plugins: [
94+
{ src: '~plugins/vue-notifications', ssr: false }
95+
]
96+
}
97+
```
98+
99+
`plugins/vue-notifications.js`:
100+
```js
101+
import Vue from 'vue'
102+
import VueNotifications from 'vue-notifications'
103+
104+
Vue.use(VueNotifications)
105+
```
106+
107+
Dans le cas où vous devez importer certaines librairies uniquement pour le serveur, vous pouvez utiliser la variable `process.server` définie sur `true` lorsque le serveur web crée le fichier `server.bundle.js`.

0 commit comments

Comments
 (0)