Le framework progressif
VUE.JS
Guillaume Chau
Vue.js Core Team
@Akryum
06/11/2014
v0.11
Cowboy Bepop
20/04/2015
Laravel PHP Adoption
26/10/2015
v1.0
Evangelion
01/10/2016
v2.0
Ghost in the Shell
08/12/2013
v0.6
First release
2016
7.6k
2017
37.6k
2018
83.8k
2016
0.21M
2017
1.78M
2018
9.72M
2016
84k
2018
355k
+122%
+446%
+322%
2017
PHILOSOPHIE
Une librairie ou un framework ?
Complexité de l'Application
VS
Complexité du Framework
Frameworks
Moins
Plus
View layer core
Library
View layer core
+
Optional Support Libraries
Framework
Optional Support Libraries
?
JavaScript Fatigue
PROGRESSIVITE
Le framework progressif
STEP
BY
STEP
Accessible aux débutants
Productif pour les plus expérimentés
Prototypes
Petits projets
Widgets
Applications Complexes
Grande échelle
<script src="https://unpkg.com/vue">
JavaScript Fatigue
Rendu déclaratif
Composants
Routing
State Management
Build Tools
RENDU DECLARATIF
Connecter le DOM et le State
DOM
State
?
Réactivité
Virtual DOM
Minimiser les opérations DOM
Diffing très rapide
Moteur de rendu autre que le DOM?
Virtual DOM
VIRTUAL
REAL DOM
Propriétés calculées
Propriétés calculées
CACHE
MAJ AUTO
LAZY
Other Included Neat Things
Class & Style Binding
Efficient Watchers
Transitions & Animations
Custom Filters & Directives
Server-Side Rendering
...
Plusieurs syntaxes possibles
Templates
JSX
Render function
Template: JavaScript in HTML
JSX: HTML in JavaScript
Render function: just JavaScript
Et maintenant, quelques schémas vraiment très très compliqués
View = Représentation du State
Réactivité en arbre de dépendances
COMPOSANTS
Réutilisables, maintenables...
Décomposition en composants
Arbre de composants
Avantages
Réutilisable
Testable
Maintenable
Evolutif
Props
Evénements
Déclarer un composant
Utiliser un composant
DRY: Extends
DRY: Mixins
ROUTING
Découpage en pages
VUE-ROUTER
Librairie Officielle
Installation de vue-router
OU
Liste des routes
Création du router
STATE MANAGEMENT
Large-scale apps
VUEX
Librairie Officielle
Short version
Long version
SFC
Single-File Component
Single-File Component (.vue)
Composant = Brique atomique
- Template, Logique et Style au même endroit
- Utilisez ce que vous connaissez déjà: HTML, CSS & JavaScript
- Importé comme un module ES2015 (donc facilement testable)
- Support clé-en-main de préprocesseurs comme Babel, SASS ou Pug
- Hot-reload intégré
- CSS scopé au composant (optionnel)
- Support des CSS modules
Single-File Component
BUILD TOOLS
Designed to be useful
vue-cli 3
devtools
Native Mobile with Vue
Guillaume Chau
@Akryum
github.com/Akryum
Merci !
Vue.js, le framework progressif
By Guillaume Chau