Seance3 1 Cours
Seance3 1 Cours
Seance3 1 Cours
ECMAScript6
ECMAScript est un standard de langage de programmation, il définit : La syntaxe,
Les types de variable et encore pas mal d’autres choses…
ES6 : Il a été publié en 2015, d’ailleurs vous pouvez aussi le voir aussi sous le nom
ES2015. Beaucoup de choses ont evolué en ES6… Fonctions Fléchées, Classes,
Modules…
Babel
Afin de faire de l’ES6 dès aujourd'hui, il faut le compiler, ou le transpiler. Pour cela
il y a notamment Babel qui va transformer pour vous le code en ES5 (version qui est
supportée par tous les navigateurs modernes). Il peut aller plus loin que de l'ES6 et
a tendance à proposer des solutions via un système de plugin pour les propositions
qui sont parfois encore en draft.
Babel fonctionne avec des presets, qui sont un ensemble de plug-ins permettant de
compiler toutes les tâches liées à la technologie qu'on voudra compiler. En ce qui
nous concerne, on aura besoin des presets suivants : babel-preset-es2015 et babel-
preset-react.
Bundlers
Le bundler condense tout le code de votre application pour n'avoir qu'un seul fichier
javascript à importer dans votre page HTML. L'intérêt majeur c'est que vous n'êtes
plus contraints d'avoir un fichier obèse quand vous codez du JavaScript, où il est
impossible de retrouver votre fonction. Vous pouvez faire des modules (fichiers
isolés), y faire référence dans un autre fichier et tout de même être capable de les
utiliser dans le navigateur sans ajouter une balise <script> à chaque fois que vous
ajoutez un fichier.
Les deux outils majeurs sur le marché sont Browserify et Webpack.
Webpack est un outil qui permet de prendre en compte la modularité du code
JavaScript. Il peut le faire selon les différents standards (commonJs, AMD, etc.). En
revanche, à lui tout seul, il est incapable de transformer le code ES2015 ou JSX.
Application React
Composant de base
Animation React
(React-transition-group, react-animations, ect…)
Le dossier node_modules contient toutes les librairies javascript dont vous aurez
besoin
Le dossier public vous y trouverez le fichier index.html qui est notre point départ avec
la div qui a pour class root qui permet de signifier a React ou est ce qu’il doit venir
s’ancrer.
Le fichier .gitignore a pour rôle de signifier a git les fichiers qui ne doivent pas être
pusher sur le repo distant notamment le dossier node module.
Le fichier package.json est certainement le fichier qui contient plusieurs informations
sur votre application React notamment les scripts, les dépendances.
Le fichier Readme permet de documenter votre app en Markdown.
Le dossier src est l’endroit où toute la magie de votre application va opérer, on y
retrouve le fichier index.js qui est le fichier qui charge notre premier composant le
composant App qui est ensuite greffer a la div avec la class root qui se trouve dans le
fichier index.hmtl au niveau du dossier public.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this
app.</noscript>
<div id="root"></div>
</body>
</html>
C'est en effet dans cette div que notre application sera afficher.
Passons ensuite au fichier src/index.js :
Ce fichier va permettre de récupérer nos composants et les afficher dans
la div#root de public/index.html
1 import React from 'react';
2 import ReactDOM from 'react-dom/client';
3 import './index.css';
4 import App from './App';
5 import reportWebVitals from './reportWebVitals';
const root =
ReactDOM.createRoot(document.getElementById('root'));
root.render(
6 <React.StrictMode>
<App />
</React.StrictMode>
);
7 reportWebVitals();