├── .gitignore ├── .editorconfig ├── slides.sh ├── pws ├── PW99.md ├── PW4.md ├── PW8.md ├── PW6.md ├── PW7.md ├── PW3.md ├── PW0.md ├── PW5.md ├── PW1.md └── PW2.md ├── docs ├── codelab.json └── index.html ├── package.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | 4 | docs/npm-debug.log 5 | pw.md 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # Change these settings to your own preference 11 | indent_style = space 12 | indent_size = 2 13 | 14 | # It's recommended to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.jade] 21 | trim_trailing_whitespace = false 22 | 23 | [*.md] 24 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /slides.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | function setup() { 4 | rm -Rf ./.tmp 5 | mkdir ./.tmp 6 | go get github.com/googlecodelabs/tools/claat 7 | } 8 | 9 | function build() { 10 | cat ./pws/PW0.md ./pws/PW1.md ./pws/PW2.md ./pws/PW3.md ./pws/PW4.md ./pws/PW5.md ./pws/PW6.md ./pws/PW7.md ./pws/PW8.md ./pws/PW99.md > ./.tmp/index.md 11 | claat export ./.tmp/index.md 12 | pushd docs 13 | claat install 14 | popd 15 | } 16 | 17 | function clean() { 18 | rm -Rf ./.tmp 19 | } 20 | 21 | function main() { 22 | setup && build && clean 23 | } 24 | 25 | main 26 | -------------------------------------------------------------------------------- /pws/PW99.md: -------------------------------------------------------------------------------- 1 | ## Fin 2 | 3 | ### Merci 🙏 4 | 5 | ### Garder le contact 6 | 7 | - Twitter 🐦@AurelienLoyer 8 | - Linkedin 🔗 linkedin.com/in/aurelien-loyer 9 | 10 | ### Aller plus loin 11 | 12 | - https://vuejs.org/v2/guide/ 13 | - https://madewithvuejs.com/ 14 | - https://vuetifyjs.com/en 15 | -------------------------------------------------------------------------------- /docs/codelab.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "web", 3 | "source": "./.tmp/index.md", 4 | "format": "html", 5 | "prefix": "https://storage.googleapis.com", 6 | "mainga": "UA-137363732-1", 7 | "updated": "2019-04-10T22:41:53-04:00", 8 | "id": "docs", 9 | "duration": 0, 10 | "title": "Codelab Vue.js", 11 | "summary": "Pendant ce codelab, nous allons créer une petite application d’E-Commerce avec la bibliothèque Vue.js.", 12 | "theme": "", 13 | "status": null, 14 | "category": null, 15 | "tags": [], 16 | "feedback": "https://twitter.com/AurelienLoyer", 17 | "url": "docs" 18 | } 19 | -------------------------------------------------------------------------------- /pws/PW4.md: -------------------------------------------------------------------------------- 1 | ## PW4 - Les Filtres 2 | 3 | Negative 4 | : ⚠️ Plus de filtre dans Vue.js 5 | http://github.com/vuejs/vue/issues/2756#issuecomment-215503966 6 | https://vuejs.org/v2/guide/filters.html 7 | 8 | Nous allons à présent créer des filtres, afin de formater le contenu de notre application. 9 | 10 | * Créez le filtre `uppercase` pour écrire en majuscules le nom des bières 11 | 12 | * Créez le filtre `currency` pour ajouter le sigle `$` au prix de chaque bière. 13 | 14 | * Nous allons terminer cette partie pratique par le développement d'une `Computed Property`. Itérez la directive `v-for` avec cette `Computed Property` afin de trier les éléments par la propriété `price`. 15 | 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "handon-vuejs", 3 | "version": "1.0.0", 4 | "description": "http://slides.com/aurelienloyer/handson-vuejs#/ Pendant ce codelab, nous allons créer une petite application d'E-Commerce avec la bibliothèque Vue.js.", 5 | "main": "index.js", 6 | "scripts": { 7 | "build": "./slides.sh" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/T3kstiil3/handson-vuejs.git" 12 | }, 13 | "keywords": [], 14 | "author": "", 15 | "license": "ISC", 16 | "bugs": { 17 | "url": "https://github.com/T3kstiil3/handson-vuejs/issues" 18 | }, 19 | "homepage": "https://github.com/T3kstiil3/handson-vuejs#readme", 20 | "devDependencies": { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /pws/PW8.md: -------------------------------------------------------------------------------- 1 | ## PW8 - VueX 2 | 3 | Pour terminer ce codelab, nous allons intégrer la bibliothèque **Vuex** afin de gérer les états de l'application. 4 | 5 | * Installez le module `vuex` 6 | 7 | * Créez le store qui sera utilisé dans l'ensemble de l'application. Dans le cadre de ce codelab nous n'y manipulerons que le panier de l'utilisateur. 8 | 9 | * Le `store` devra être injecté dans chaque composant de notre application. 10 | 11 | * Lorsque l'utilisateur sélectionne une bière, veuillez créer une mutation permettant d'ajouter la bière selectionnée au panier. 12 | 13 | * Dans les composants `basket` et `menu`, utilisez le panier stocké dans le `store` pour afficher les informations nécessaires. 14 | 15 | * Dans le composant principal, si la propriété stockée dans le `store` n'est pas définie, veuillez envoyer la requête vers le serveur, afin de l'initialiser. 16 | 17 | -------------------------------------------------------------------------------- /pws/PW6.md: -------------------------------------------------------------------------------- 1 | ## PW6 - Le Routeur 2 | 3 | Nous allons à présent intégrer dans notre application le routeur proposé par la communauté **vue.jS** 4 | 5 | * Installez le module `vue-router` 6 | 7 | * Créez deux composants : `home` et `basket` 8 | * le composant `home` aura la charge d'afficher le contenu de la page que nous avons implémenté dans les PWs précédents 9 | * le composant `basket` qui doit afficher, pour l'instant, le contenu du panier de l'utilisateur au format json 10 | 11 | * Ajoutez à votre application la configuration nécessaire pour le fonctionnement du routeur. 12 | 13 | * Dans le template du composant `App`, indiquez le point d'insertion des différentes pages de l'application à l'aide de la directive `router-view`. 14 | 15 | * Ajoutez le composant `router-link` dans le composant `menu` afin de rediriger l'utilisateur vers les deux composants que nous venons de créer. 16 | 17 | -------------------------------------------------------------------------------- /pws/PW7.md: -------------------------------------------------------------------------------- 1 | ## PW7 - Les Formulaires 2 | 3 | Dans ce PW, nous allons éditer le formulaire dans le composant `basket` créé précédemment. 4 | 5 | - Affichez le panier de l'utilisateur avec le template `basket.html`. 6 | 7 | - Dans le composant `basket`, créez un objet `customer` avec les propriétés `name`, `address` et `creditCard`. 8 | 9 | - Associez à chaque champs du formulaire la propriété de l'objet créé précédemment. 10 | 11 | - Lorsque le formulaire est validé, vous devez envoyer une requête POST au serveur avec les informations de l'utilisateur à l'URL `basket/confirm`. 12 | 13 | - La requête de confirmation ne peut être exécutée que si tous les champs ont été saisis. Dynamisez l'ajout de la classe `has-error` en fonction de l'état de validation du formulaire. 14 | (Pour ce codelab, nous faisons ce traitement à la main, mais nous pourrions utiliser des bibliothèques comme `vue-validate`). 15 | 16 | - Si la requête de confirmation s'exécute avec succès, redirigez l'utilisateur vers la page principale. 17 | 18 | -------------------------------------------------------------------------------- /pws/PW3.md: -------------------------------------------------------------------------------- 1 | ## PW3 - Les Directives 2 | 3 | Dans ce TP, nous allons dynamiser notre page avec les directives `v-for`, `v-if` et `v-bind`. 4 | 5 | * Grâce à la directive `v-for`, itérez sur la liste des bières afin d'afficher autant de composants `Beer.vue` qu'il y a d'éléments dans le tableau. 6 | 7 | * Dans notre tableau de `Beer`, ajoutez une propriété stock. Initiez cette propriété à 5 pour tous les éléménts du tableau utilisé par le composant principal. 8 | 9 | * Lorsque l'utilisateur sélectionne un élément, décrémentez le stock associé. 10 | 11 | * Grâce à la directive `v-if`, affichez un produit, si et seulement si sa propriété stock est supérieure à 0. 12 | 13 | * Changez la couleur de fond d'un produit si son stock atteint 1. Pour cela, utilisez la syntaxe `v-bind:class` sur l'élément ayant la classe `thumbnail`, ainsi que la classe suivante : 14 | 15 | ```css 16 | .last { 17 | background-color: rgba(255, 0, 0, 0.4) 18 | } 19 | ``` 20 | 21 | * Dans le composant `menu`, dynamisez le lien redirigeant l'utilisateur vers la page `basket` : 22 | * Si le panier est vide, affichez `Accéder à votre panier (vide)` 23 | * Si il y a au moins 1 produit, affichez `Accéder à votre panier (1 article(s) - 10€)` 24 | 25 | -------------------------------------------------------------------------------- /pws/PW0.md: -------------------------------------------------------------------------------- 1 | author: Loyer Aurelien 2 | summary: Pendant ce codelab, nous allons créer une petite application d'E-Commerce avec la bibliothèque Vue.js. 3 | id: docs 4 | ga: UA-137363732-1 5 | feedback link: https://twitter.com/AurelienLoyer 6 | 7 | # Codelab Vue.js 8 | 9 | ## Prérequis 10 | 11 | Pour faire ce codelab, vous avez besoin des outils suivants : 12 | 13 | * GIT 14 | * NodeJS 7.x ou > 15 | * un IDE (WebStorm ou Visual Studio Code...) 16 | 17 | Pour aider au développement, vous pouvez utiliser l'extention Chrome **Vue-devtools** (https://github.com/vuejs/vue-devtools) 18 | 19 | Afin d'éviter les problèmes de réseau et gagner du temps le jour J, veuillez cloner ce projet et exécuter les commandes suivantes : 20 | 21 | ```shell 22 | git clone -b step0 https://github.com/T3kstiil3/handson-vuejs 23 | 24 | npm install -g @vue/cli 25 | # OR 26 | yarn global add @vue/cli 27 | ``` 28 | 29 | Pour vérifier que tout marche correctement: 30 | ``` 31 | vue --version 32 | vue --help 33 | ``` 34 | Vous devriez avoir une version > 3.* et une liste de commandes pour commencer votre projet. 35 | 36 | ### Exercices 37 | 38 | Tous les exercices qui vont suivre se baseront sur deux pages statiques que nous avons développées. 39 | Le but sera d'intégrer ces pages dans une application Vue.js. 40 | 41 | 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | Pendant ce codelab, nous allons créer une petite application d'E-Commerce avec la bibliothèque Vue.js. 4 | 5 | * https://slides.com/aurelienloyer/handson-vuejs 6 | * https://slides.com/aurelienloyer/handson-vuejs/live 7 | 8 | ## Prérequis 9 | 10 | Pour faire ce codelab, vous avez besoin des outils suivants : 11 | 12 | * GIT 13 | * NodeJS 7.x 14 | * un IDE (WebStorm ou Visual Studio Code...) 15 | 16 | Pour aider au développement, vous pouvez utiliser l'extention Chrome **Vue-devtools** (https://github.com/vuejs/vue-devtools) 17 | 18 | Afin d'éviter les problèmes de réseau le jour J, veuillez cloner ce projet et exécuter les commandes suivantes : 19 | 20 | ```shell 21 | git clone -b step0 https://github.com/T3kstiil3/handson-vuejs 22 | 23 | npm install -g @vue/cli 24 | # OR 25 | yarn global add @vue/cli 26 | ``` 27 | 28 | Pour vérifier que tout marche correctement: 29 | ``` 30 | vue --version 31 | vue --help 32 | ``` 33 | Vous devriez avoir une version > 3.* et une liste de command pour commencer votre projet. 34 | 35 | ## 36 | 37 | Tous les exercices qui vont suivre se baseront sur deux pages statiques que nous avons développées. 38 | Le but sera d'intégrer ces pages dans une application VueJS. 39 | 40 | Pour récupérer ces templates, veuillez exécuter la commande suivante : 41 | 42 | ```shell 43 | git clone -b step0 https://github.com/T3kstiil3/handson-vuejs 44 | ``` 45 | 46 | ## Exercices 47 | 48 | https://aurelien-loyer.fr/handson-vuejs/ 49 | -------------------------------------------------------------------------------- /pws/PW5.md: -------------------------------------------------------------------------------- 1 | ## PW5 - Les Ressources 2 | 3 | Nous allons à présent intégrer à notre application une API REST. 4 | Pour lancer le serveur, vous devez exécuter la commande suivante : 5 | 6 | ```shell 7 | cd server 8 | npm install 9 | npm start 10 | ``` 11 | 12 | Le serveur sera disponible via l'URL `http://localhost:1337/api/v1`. 13 | 14 | Cette API propose plusieurs points d'entrée : 15 | 16 | - `GET` sur `/beers` retournera la liste des bières 17 | - `GET` sur `/basket` retournera le panier de l'utilisateur 18 | - `POST` sur `/basket` pour ajouter une nouvelle bière au panier de l'utilisateur 19 | 20 | Negative 21 | : ⚠️ vue-resource -> axiox (https://medium.com/the-vue-point/retiring-vue-resource-871a82880af4) 22 | 23 | Pour consommer cette API nous allons utiliser `axios` : 24 | 25 | ```shell 26 | npm install axios --save 27 | ``` 28 | 29 | * N'oubliez pas d'ajouter axios dans votre application vuejs (fichier main.js) 30 | 31 | ```javascript 32 | import axios from 'axios'; 33 | Vue.prototype.$http = axios; 34 | ``` 35 | 36 | Dans le composant principal : 37 | 38 | * Récupérez la liste des bières à afficher. Le tableau JavaScript que nous avions défini pourra à présent être remplacé. 39 | 40 | * Récupérez le panier de l'utilisateur. Ce panier sera passé en paramètre du composant `menu` afin d'afficher les informations associées (nombre d'élément, montant du panier). 41 | 42 | * Ajoutez lorsque l'utilisateur sélectionne une bière, veuillez l'ajouter au panier. 43 | 44 | -------------------------------------------------------------------------------- /pws/PW1.md: -------------------------------------------------------------------------------- 1 | ## PW1 - Getting Started 2 | 3 | Dans cette première partie pratique, nous allons juste intégrer le template que nous vous mettons à disposition dans une application **vue.js**. 4 | Pour cela nous allons nous servir de l'utilitaire **vue cli**. 5 | 6 | * Installez **vue-cli** 7 | 8 | ```shell 9 | npm install -g @vue/cli 10 | ``` 11 | 12 | * Créez une application, en utilisant la commande suivante et en repondant aux questions générer votre base. 13 | 14 | ```shell 15 | vue create . 16 | ``` 17 | 18 | Pour cette première étape, nous vous conseillons de désactiver **eslint** et le routeur lors de la génération de l'application. (ne pas faire en production ⚠️ 😉) 19 | 20 | ```shell 21 | ? Please pick a preset: Manually select features 22 | ? Check the features needed for your project: 23 | ◉ Babel 24 | ◯ TypeScript 25 | ◯ Progressive Web App (PWA) Support 26 | ◯ Router 27 | ◯ Vuex 28 | ❯◉ CSS Pre-processors 29 | ◯ Linter / Formatter 30 | ◯ Unit Testing 31 | ◯ E2E Testing 32 | 33 | ? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Sass/SCSS 34 | ? Where do you prefer placing config for Babel, PostCSS, ESLint, etc.? In dedicated config files 35 | ? Save this as a preset for future projects? (y/N) 36 | ``` 37 | 38 | * Vous devez à présent installer les dépendances avec **NPM** ou **Yarn** 39 | 40 | ```shell 41 | npm i 42 | ``` 43 | 44 | * L'application se lance avec la commande suivante : 45 | 46 | ```shell 47 | npm run serve 48 | ``` 49 | 50 | * Vue CLI 3 arrive avec une nouvelle interface UI, pour la tester : 51 | 52 | ```shell 53 | vue ui 54 | ``` 55 | -------------------------------------------------------------------------------- /pws/PW2.md: -------------------------------------------------------------------------------- 1 | ## PW2 - Les Composants 2 | 3 | * Vous êtes à présent prêt pour intégrer le template dans l'application qui vient d'être générée. Nous allons nous limiter pour l'instant à la page `home.html`. Voici les prérequis : 4 | * les éléments à l'extérieur de `
` doivent se trouver dans le fichier `index.html` 5 | * le contenu de `` doit être inséré dans le composant `App.vue` 6 | 7 | Nous allons à présent créer nos premiers composants. Le premier sera utilisé pour afficher le **header** et le second pour le bloc spécifique à une bière. 8 | 9 | * Créez un nouveau composant `menu.vue` dans lequel vous allez implémenter le menu principal de l'application. Ce composant possèdera un paramètre, un tableau de produits (le panier de l'utilisateur). Ce tableau sera utilisé pour calculer le prix total du panier. 10 | 11 | * Remplacez dans le composant principal le menu initial par le composant que vous venez de créer. 12 | 13 | * Dans le composant principal, instanciez un nouveau tableau d'objets, correspondant aux items que nous désirons afficher. Vous pouvez récupérer le contenu du fichier `server/beers.json` 14 | 15 | * Nous allons à présent créer un composant `Beer.vue` qui sera en charge d'afficher le détail d'un élément du tableau précédement créé. Voici les prérequis pour ce composant : 16 | * Il utilisera le template pour l'instant présent dans le composant principal 17 | * Il possèdera un paramètre, correspondant à l'élément à afficher 18 | * Il émettra un événement lorsque nous cliquons sur le bouton 19 | 20 | * Lorsque le composant principal reçoit cet événement, il devra mettre à jour le panier de l'utilisateur (utilisé précédemment lors de l'utilisation du composant `menu.vue`). 21 | 22 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |Pour faire ce codelab, vous avez besoin des outils suivants :
32 |Pour aider au développement, vous pouvez utiliser l'extention Chrome Vue-devtools (https://github.com/vuejs/vue-devtools)
38 |Afin d'éviter les problèmes de réseau et gagner du temps le jour J, veuillez cloner ce projet et exécuter les commandes suivantes :
39 |git clone -b step0 https://github.com/T3kstiil3/handson-vuejs
40 |
41 | npm install -g @vue/cli
42 | # OR
43 | yarn global add @vue/cli
44 |
45 | Pour vérifier que tout marche correctement:
46 |vue --version
47 | vue --help
48 |
49 | Vous devriez avoir une version > 3.* et une liste de commandes pour commencer votre projet.
50 |Tous les exercices qui vont suivre se baseront sur deux pages statiques que nous avons développées.
Le but sera d'intégrer ces pages dans une application Vue.js.
Dans cette première partie pratique, nous allons juste intégrer le template que nous vous mettons à disposition dans une application vue.js.
Pour cela nous allons nous servir de l'utilitaire vue cli.
npm install -g @vue/cli
60 |
61 | vue create .
63 |
64 | Pour cette première étape, nous vous conseillons de désactiver eslint et le routeur lors de la génération de l'application. (ne pas faire en production ⚠️ 😉)
67 |? Please pick a preset: Manually select features
68 | ? Check the features needed for your project:
69 | ◉ Babel
70 | ◯ TypeScript
71 | ◯ Progressive Web App (PWA) Support
72 | ◯ Router
73 | ◯ Vuex
74 | ❯◉ CSS Pre-processors
75 | ◯ Linter / Formatter
76 | ◯ Unit Testing
77 | ◯ E2E Testing
78 |
79 | ? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Sass/SCSS
80 | ? Where do you prefer placing config for Babel, PostCSS, ESLint, etc.? In dedicated config files
81 | ? Save this as a preset for future projects? (y/N)
82 |
83 | npm i
85 |
86 | npm run serve
88 |
89 | vue ui
91 |
92 | home.html. Voici les prérequis :<body> doivent se trouver dans le fichier index.html<body> doit être inséré dans le composant App.vueNous allons à présent créer nos premiers composants. Le premier sera utilisé pour afficher le header et le second pour le bloc spécifique à une bière.
107 |menu.vue dans lequel vous allez implémenter le menu principal de l'application. Ce composant possèdera un paramètre, un tableau de produits (le panier de l'utilisateur). Ce tableau sera utilisé pour calculer le prix total du panier.server/beers.jsonBeer.vue qui sera en charge d'afficher le détail d'un élément du tableau précédement créé. Voici les prérequis pour ce composant :menu.vue).Dans ce TP, nous allons dynamiser notre page avec les directives v-for, v-if et v-bind.
v-for, itérez sur la liste des bières afin d'afficher autant de composants Beer.vue qu'il y a d'éléments dans le tableau.Beer, ajoutez une propriété stock. Initiez cette propriété à 5 pour tous les éléménts du tableau utilisé par le composant principal.v-if, affichez un produit, si et seulement si sa propriété stock est supérieure à 0.v-bind:class sur l'élément ayant la classe thumbnail, ainsi que la classe suivante :.last {
131 | background-color: rgba(255, 0, 0, 0.4)
132 | }
133 |
134 | menu, dynamisez le lien redirigeant l'utilisateur vers la page basket :Accéder à votre panier (vide)Accéder à votre panier (1 article(s) - 10€)Nous allons à présent créer des filtres, afin de formater le contenu de notre application.
149 |uppercase pour écrire en majuscules le nom des bièrescurrency pour ajouter le sigle $ au prix de chaque bière.Computed Property. Itérez la directive v-for avec cette Computed Property afin de trier les éléments par la propriété price.Nous allons à présent intégrer à notre application une API REST.
Pour lancer le serveur, vous devez exécuter la commande suivante :
cd server
161 | npm install
162 | npm start
163 |
164 | Le serveur sera disponible via l'URL http://localhost:1337/api/v1.
Cette API propose plusieurs points d'entrée :
166 |GET sur /beers retournera la liste des bièresGET sur /basket retournera le panier de l'utilisateurPOST sur /basket pour ajouter une nouvelle bière au panier de l'utilisateurPour consommer cette API nous allons utiliser axios :
npm install axios --save
175 |
176 | import axios from 'axios';
178 | Vue.prototype.$http = axios;
179 |
180 | Dans le composant principal :
183 |menu afin d'afficher les informations associées (nombre d'élément, montant du panier).Nous allons à présent intégrer dans notre application le routeur proposé par la communauté vue.jS
194 |vue-routerhome et baskethome aura la charge d'afficher le contenu de la page que nous avons implémenté dans les PWs précédentsbasket qui doit afficher, pour l'instant, le contenu du panier de l'utilisateur au format jsonApp, indiquez le point d'insertion des différentes pages de l'application à l'aide de la directive router-view.router-link dans le composant menu afin de rediriger l'utilisateur vers les deux composants que nous venons de créer.Dans ce PW, nous allons éditer le formulaire dans le composant basket créé précédemment.
basket.html.basket, créez un objet customer avec les propriétés name, address et creditCard.basket/confirm.has-error en fonction de l'état de validation du formulaire.vue-validate).Pour terminer ce codelab, nous allons intégrer la bibliothèque Vuex afin de gérer les états de l'application.
225 |vuexstore devra être injecté dans chaque composant de notre application.basket et menu, utilisez le panier stocké dans le store pour afficher les informations nécessaires.store n'est pas définie, veuillez envoyer la requête vers le serveur, afin de l'initialiser.