Mickaël BARON - Version 12-2020
Creative Commons
Contrat Paternité
Partage des Conditions Initiales à l'Identique
2.0 France
creativecommons.org/licenses/by-sa/4.0Disponibles sur Github : github.com/mickaelbaron
Intégration dans un existant
Single Page Application (SPA)
Je ne vous garantis pas d'être un expert en ...
Pas le temps ⏳ de tout traiter
Prérequis minimums
Permet de définir la structure et le contenu
Permet de définir le style
Sans feuille de style CSS
Avec feuille de style CSS
Anatomie d'une règle CSS
Différents types de sélecteurs CSS
Cibler les contenus HTML
Référencer feuille de style CSS dans page HTML
Dans un fichier séparé 👍
Dans le fichier HTML
Disposer d'un talent ou laisser faire les experts
Possibilité d'utiliser un framework CSS clé en main
Permet de définir le comportement
Implémentation de la spécification ECMAScript (ES)
Détail des versions majeures
Un navigateur supporte-il ECMAScript ? caniuse.com
Trois fonctionnalités ES6 à connaître
let
: variable avec scope block
const
: constante
arrow
: fonction anonyme
Récapitulatif des améliorations de ES6 : devhints.io/es6
Référencer un code JavaScript dans une page HMTL
Dans un fichier séparé 👍
<body>
...
<script
src="myscript.js">
</script>
</body>
Dans le fichier HTML
<body>
...
<script>
const NEW_VALUE = ...;
...
</script>
</body>
Codes JavaScript à la fin du document HTML ?
Open source et développé par Microsoft depuis 2012 : www.typescriptlang.org
Adoption qui explose depuis 2016
Développement d'applications web a connu trois évolutions majeures
Éléments de cette période à retenir
Le principal fait marquant : les navigateurs web
Le site du lemonde.fr en 1996
Éléments de cette période à retenir
Le principal fait marquant : JQuery
Le site du lemonde.fr en 2006
Éléments de cette période à retenir
Le principal fait marquant : HTML5
Multi Page Application
Single Page Application
Le site du lemonde.fr en 2020
Les quatre fonctionnalités qu'un framework web JavaScript moderne doit proposer
Bibliothèque (Library 🇬🇧) est différent de Framework
Bibliothèque
Framework
Model-View-ViewModel pour les frameworks web
La liaison View/ViewModel se fait par ❶ Data Binding
Chaque ❸ composant respecte MVVM
La visibilité d'un composant se fait par ❹ routage
Mécanisme de notification entre le modèle et la vue
Liaison unidirectionnelle (one-way data binding 🇬🇧)
Liaison bidirectionnelle (two-way data binding 🇬🇧)
ViewModel consomme les éléments du modèle et les affiche dans la vue et inversement
Enrichir la vue pour le support du Data Binding
Interpolation (notation Moustache)
Directives
Peut gérer du texte, des variables, du code JavaScript
Pouvoir créer des composants réutilisables
Comprendre le cycle de vie d'un composant
Arbre de relations père-fils (communication)
Initiative proposée par Google : webcomponents.org
Standards pour créer et réutiliser des composants
Peu implémentée par les navigateurs, extensions
Simuler plusieurs pages web différentes dans une SPA
Quand un utilisateur visite une page, un code détermine ce qui doit se passer
Mise en œuvre
/export
et paramètres
?param=value
)Les trois frameworks JavaScript les plus utilisés
Origine (2016)
Points marquants
Utilisé par : Microsoft (Office), Youtube, GMail...
À choisir pour créer une nouvelle application
Origine (2013)
Points marquants
Utilisé par : Facebook, Uber, Airbnb, Netflix...
À choisir pour créer des composants individuels
Origine (2014)
Points marquants
Utilisé par : Gitlab, Alibaba...
À choisir pour transformer un site web existant
Liens pour se faire une idée 🧐
Le marché de l'emploi cible Angular ou React 😱
Code = Concepts Web
Conduite = Développement
Comment s'y retrouver 🧐
Génèrateur de code source depuis un autre code source dont les langages ont le même niveau d'abstraction
Ne pas confondre avec compilateur (langage haut niveau vers bas niveau)
Outil : Babel.js
Analyseur statique de code qui permet de relever
Amélioration de votre code pour le rendre présentable
Outil : ESLint
Réducteur de taille de code pour limiter le volume à télécharger depuis le serveur
Non minifié
Minifié
Éditeur de texte fournissant des outils pour améliorer la productivité du développeur
Outils : VSCode, WebStorm, Sublime Text ...
Outils de type Command Line Interface proposés par les frameworks JavaScript
S'appuie sur les outils de construction automatique (génère fichiers config.)
Outils : Vite, Create-React-App, Angular CLI