You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ce premier composant est volontairement très simple (type "hello world"), il retourne simplement un texte dans un élément HTML `<div>`.
49
-
Ce texte est passé au composant grâce à une propriété `text`. Cette propriété est définie comme étant de type `string` et obligatoire (partie `propTypes` du composant).
50
-
51
-
Afin de pouvoir ajouter du style sur ce componsant, on définit également une classe CSS via l'attribut `className`.
53
+
Ce premier composant est volontairement très simple (de type "hello world"), il retourne simplement le nom du vin dans un élément HTML `<div>`.
54
+
Le nom du vin est passé au composant grâce à une propriété `name`. Cette propriété est définie comme étant de type `string` et obligatoire (partie `propTypes` du composant).
52
55
53
-
*Remarque : n'oubliez pas que JSX n'est que du "sucre syntaxique" transformé en javascript, ce n'est pas du HTML !
54
-
Ce qui explique l'utilisation de `className` et non `class` qui est un mot clé réservé en javascript*
56
+
Un style est également appliqué au componsant via l'attribut `style`.
55
57
56
58
Vous pouvez également utiliser directement la fonction `createElement` de l'API `React` :
57
59
58
60
```javascript
59
-
render:function() {
61
+
render() {
60
62
returnReact.createElement(
61
63
'div',
62
-
{className:'todo'},
63
-
this.props.text
64
+
{style: WineStyle},
65
+
this.props.name
64
66
);
65
67
}
66
68
```
67
69
68
70
### index.html
69
71
70
-
Créez une page HTML basique et ajoutez-y une `<div>` (possédant l'identifiant `main`) dans laquelle nous effectuerons le rendu de notre composant.
72
+
Dans le dossier `public`, créez une page HTML basique et ajoutez-y une `<div>` (possédant l'identifiant `main`) dans laquelle nous effectuerons le rendu de notre composant.
71
73
72
74
```html
73
75
<!DOCTYPE html>
74
76
<html>
75
77
<head>
76
78
<metacharset="UTF-8"/>
77
-
<title>React Workshop - Etape 0</title>
78
-
<linkrel="stylesheet"href="/css/index.css">
79
+
<title>React Workshop</title>
79
80
</head>
80
81
<body>
81
-
<h1>Etape 0 - Installation et premier composant</h1>
82
+
<h1>Wines</h1>
82
83
83
84
<divid="main"></div>
84
85
85
86
</body>
86
87
</html>
87
88
```
88
-
Cette page référence la feuille de style `css/index.css`. Pensez à la créer afin de donner du style au componsant `Todo`. Par exemple :
89
-
90
-
```css
91
-
.todo {
92
-
border: 1pxsoliddarkblue;
93
-
background: lightblue;
94
-
color: darkblue;
95
-
padding: 5px;
96
-
}
97
-
```
98
89
99
90
### app.js
100
91
101
-
A la racine du répertoire `src`, créez le fichier `app.js` qui contient le code nécessaire au rendu du componsant `Todo` dans la `<div>` créée précédemment :
92
+
A la racine du répertoire `src`, créez le fichier `app.js` qui contient le code nécessaire au rendu du componsant `Wine` dans la `<div>` créée précédemment :
102
93
103
94
```javascript
104
-
var React =require('react');
105
-
var ReactDOM =require('react-dom');
95
+
importReactfrom'react';
96
+
importReactDOMfrom'react-dom';
106
97
107
-
var Todo =require('./components/todo');
98
+
importWinefrom'./components/wine';
108
99
109
100
ReactDOM.render(
110
-
<Todo text="Ceci est une tâche à réaliser."/>,
101
+
<Wine name="Château Chevrol Bel Air"/>,
111
102
document.getElementById('main')
112
103
);
113
104
```
@@ -117,8 +108,8 @@ Vous pouvez également utiliser directement la fonction `createElement` de l'API
117
108
```javascript
118
109
ReactDOM.render(
119
110
React.createElement(
120
-
Todo,
121
-
{text:'Ceci est une tâche à réaliser.'}
111
+
Wine,
112
+
{name:'Château Chevrol Bel Air'}
122
113
),
123
114
document.getElementById('main')
124
115
);
@@ -196,7 +187,7 @@ Enfin, pensez à référencer le script `bundle.js` dans le fichier `index.html`
196
187
197
188
```html
198
189
<body>
199
-
<h1>Etape 0 - Installation et premier composant</h1>
190
+
<h1>Wines</h1>
200
191
201
192
<divid="main"></div>
202
193
@@ -225,7 +216,7 @@ Ajoutez un nouveau script permettant de lancer le serveur Webpack :
225
216
226
217
Lancez enfin la commande `npm start` et ouvrez la page `http://localhost:8080`.
227
218
228
-
Modifiez le code du composant `Todo` et observez les modifications en live dans votre navigateur !
219
+
Modifiez le code du composant `Wine` et observez les modifications en live dans votre navigateur !
229
220
230
221
## ESLint
231
222
@@ -249,13 +240,15 @@ Créez ensuite le fichier `.eslintrc` qui permet de configurer ESLint :
249
240
"extends": "eslint:recommended",
250
241
"env": {
251
242
"browser": true,
252
-
"node": true
243
+
"node": true,
244
+
"es6": true
253
245
},
254
246
"plugins": [
255
247
"react"
256
248
],
257
249
"ecmaFeatures": {
258
-
"jsx": true
250
+
"jsx": true,
251
+
"modules": true
259
252
},
260
253
"rules": {
261
254
"react/prop-types": 1,
@@ -266,7 +259,7 @@ Créez ensuite le fichier `.eslintrc` qui permet de configurer ESLint :
266
259
* L'attribut `extends` permet d'hériter d'une configuration existante. `eslint:recommended` contient les règles recommandée par ESLint.
267
260
* La partie `env` permet de définir quelles variables globales sont potentiellement utilisées dans le code. Ici nous ajoutons celles du navigateur et celle de node.
268
261
* La partie `plugins` permet d'ajouter des plugins ESLint. Ici nous ajoutons le plugin React.
269
-
* La partie `ecmaFeatures` permet de définir les options du langage Javascript supportées lors de l'analyse. Ici nous activons la syntaxe JSX.
262
+
* La partie `ecmaFeatures` permet de définir les options du langage Javascript supportées lors de l'analyse. Ici nous activons la syntaxe JSX ainsi que les modules ES6.
270
263
* La partie `rules` permet de définir les règles à appliquer lors de l'analyse du code. Pour plus de détails sur les règles disponibles : [https://www.npmjs.com/package/eslint-plugin-react](https://www.npmjs.com/package/eslint-plugin-react)
271
264
272
265
Il est possible d'exclure certains fichiers ou dossiers de l'analyse, grâce au fichier `.eslintignore`. Exemple :
@@ -281,6 +274,6 @@ Enfin, ajoutez un script dans le fichier `package.json` permettant d'exécuter E
0 commit comments