SlideShare une entreprise Scribd logo
Speaker : Bruno Bonnin - @_bruno_b_
Vue.js, même un dev Java peut en faire !
Bruno Bonnin @_bruno_b_ - 15 septembre
Solution Architect @saagie_io
#Java #JavaScript #Python
#Elastisearch #MongoDB #ArangoDB
#NoSQL #Hadoop #BigData
#HTML5 #AngularJS #VueJS #WebAPI
Nantes, France
Smart Data Platform
Une véritable ligne d’assemblage Big Data (Data Fabric)
Orienté composants
Dédié à la création
d’interfaces Web
Performant
Très facile à
apprendre
Vue.js en quelques mots...
Focus sur la
couche View
Flexible
npm install vue-cli -g
vue init webpack monprojet
npm run dev
C’est parti, on l’installe...
<script src="https://unpkg.com/vue">Le plus simple
Mieux npm install vue
Encore mieux
… et on code un bon vieux hello world !
<div id="app">
<h1>Hello {{ name }} !</h1>
</div>
<script>
new Vue({
el: '#app',
data: {
name: 'JUG Summer Camp'
}
})
</script> Véritable snapshot
réalisé sans trucage !!
La base: l’instance "Vue" (et ses options)
new Vue({
el: '#hero-app',
data: {
name: 'Deadpool'
},
computed: {
uppercaseName: function () {
return this.name.toUpperCase();
}
},
methods: {
clearName: function () {
this.name = '';
}
}
})
La totale sur : https://vuejs.org/v2/api/
Les données (réactives: Vue
détectera toute modification et fera
les màj du DOM nécessaire)
Les données calculées (utilisables
comme les autres données et mises
en cache)
Les fonctions utilisables via l’instance
de Vue ou dans les directives
La base: l’instance "Vue" et
Hooks sur le cycle de vie
Source: https://vuejs.org/v2/guide/instance.html
La base: l'interpolation
<h1>Bonjour {{ name }} !</h1>
{{ ... }}
v-bind
<a v-bind:href="search_url">Search</a>
<span :title="message"> </span>
La base: les directives (v-...)
<input type="text" v-model="name" >
<button v-on:click="like"> J’aime </button>
<div v-if="talk.liked"> Vous aimez ça ! </div>
<div v-else> Vous n’aimez pas </div>
<div v-for="talk in talks">
<h3>{{ talk.title }}</h3>
</div>
Les composants
<barchart
v-bind:values="dataset"
v-bind:title="chartTitle"/>
Les composants
Vue.component('barchart', {
template: `
<h2>{{title}}</h2>
<canvas/>`,
props: [ 'title', 'values' ],
data: function () {
return {
chart: null
}
},
methods: { … } ,
mounted: function () { … }
})
<div id="app">
<barchart
v-bind:values="dataset"
title="Nice chart !"/>
</div>
new Vue({
el: 'app',
data: {
dataset: []
},
mounted: function () {
// init dataset
}
})
Les composants
.CSS
.HTML
.JS .VUE
+
+
<template>
<div>
<h2>{{ title }}</h2>
<canvas/>
</div>
</template>
<script>
export default {
props: [ 'title', 'values' ],
data: function () { … },
methods: { … } ,
mounted: function () { … }
}
</script>
<style scoped>
/* Je déteste le css, donc j’en mettrai pas une ligne… */
</style>
Démo : un chart en 2 secondes !
(avec un composant qui contient un composant qui contient un composant qui …)
App.vue
Dataview.vue
Chart.vue
J’aurais pu en parler...
vue-router
vuex
vue-devtools
Effets de transition, mixins, custom
directives, server-side rendering, tests
unitaires, ...
vue-test-utils
Quoi d’autres ?
https://github.com/vuejs/awesome-vue
En conclusion...
Après plus de 2 ans d’existence, la communauté grandit vite
!
Nombre de stars > 65 000
675k downloads sur le dernier mois
Focus sur la simplicité
Orienté composant
Montée en compétence très rapide
Vue.js doit faire partie de votre réflexion vos apps !
Merci !
@_bruno_b_
https://github.com/bbonnin/jugsummercamp2017

Contenu connexe

PDF
A la découverte de vue.js
PDF
Vue.js, même un dev java peut en faire !
PDF
Vue, j’avais pas vu !
PDF
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
PDF
AngularJS et autres techno frontend
PDF
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
PDF
jQuery - GTI780 & MTI780 - ETS - A08
PDF
Comment créer des hooks dans vos développements WordPress - WP Tech 2015
A la découverte de vue.js
Vue.js, même un dev java peut en faire !
Vue, j’avais pas vu !
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
AngularJS et autres techno frontend
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
jQuery - GTI780 & MTI780 - ETS - A08
Comment créer des hooks dans vos développements WordPress - WP Tech 2015

Tendances (18)

PDF
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
PDF
Polymer
PDF
Javascript in a continuous integration environment
PDF
Intro à angular
PDF
Comment se charge WordPress ? Le loading du core.
PDF
HTML5, le nouveau buzzword
PPTX
Introduction à AngularJS
PPTX
Cancellable Promises
PDF
Cours php & Mysql - 3éme partie
PDF
Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...
PDF
jQuery GTI780 & MTI780 ETS A09
PDF
GDG Rennes - Bootcamp Initiation Android - Théorie
PDF
Tapestry
PPTX
AngularJS
ODP
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
PDF
Bootcamp d'Initiation à Android - 2013/11/30
PDF
Cours javascript
PPT
Blue j
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
Polymer
Javascript in a continuous integration environment
Intro à angular
Comment se charge WordPress ? Le loading du core.
HTML5, le nouveau buzzword
Introduction à AngularJS
Cancellable Promises
Cours php & Mysql - 3éme partie
Deliverance, la puissance de la gestion de contenu Plone appliquee aux themes...
jQuery GTI780 & MTI780 ETS A09
GDG Rennes - Bootcamp Initiation Android - Théorie
Tapestry
AngularJS
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Bootcamp d'Initiation à Android - 2013/11/30
Cours javascript
Blue j
 
Publicité

Similaire à Jug summer camp 2017 - Vue.js, même un dev java peut en faire ! (20)

PDF
vue j'avais pas vu !!
PDF
XebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic Ladeu
PDF
Symposium n°7 : Plateforme Meteor
PDF
HTML5
PDF
[Tuto] Big datatrack : Web Tracker
PDF
Pourquoi Firefox OS
KEY
La mobilité dans Drupal
PDF
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
PPTX
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
PPTX
Paul valery et les Web components
PPTX
VueJS.pptx
PPTX
1-Introduction JQuery.pptx
PDF
Grunt / Bower / Yeoman ou comment automatiser le développement d’un projet we...
PPTX
Grunt, Bower, Yeoman ou comment automatiser un projet web SPA
PDF
Application web php5 html5 css3 bootstrap
PPTX
M204-Ch03_ Comprendre les concepts de React JS.pptx
PDF
Atelier autour de UWA à ParisWeb 2007
PDF
Devoxx France 2015 - Développement web en 2015
PPTX
Web Matrix (Microsoft WebCamps Paris)
PDF
Looker Studio - trucs et astuces pour améliorer ses dashboards
vue j'avais pas vu !!
XebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic Ladeu
Symposium n°7 : Plateforme Meteor
HTML5
[Tuto] Big datatrack : Web Tracker
Pourquoi Firefox OS
La mobilité dans Drupal
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Paul valery et les Web components
VueJS.pptx
1-Introduction JQuery.pptx
Grunt / Bower / Yeoman ou comment automatiser le développement d’un projet we...
Grunt, Bower, Yeoman ou comment automatiser un projet web SPA
Application web php5 html5 css3 bootstrap
M204-Ch03_ Comprendre les concepts de React JS.pptx
Atelier autour de UWA à ParisWeb 2007
Devoxx France 2015 - Développement web en 2015
Web Matrix (Microsoft WebCamps Paris)
Looker Studio - trucs et astuces pour améliorer ses dashboards
Publicité

Plus de Bruno Bonnin (15)

PDF
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
PDF
Stream processing avec Apache Pulsar
PDF
Stream processing et SQL
PDF
Stream processing et SQL
PDF
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
PDF
Stream processing et SQL
PDF
Stream processing et SQL
PDF
Explorez vos données présentes dans MongoDB avec Apache Zeppelin
PDF
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
PDF
Big Data Viz (and much more!) with Apache Zeppelin
PDF
Tout ce que le getting started mongodb ne vous dira pas
PDF
Explorez vos données avec apache zeppelin
PDF
Tout ce que le getting started MongoDB ne vous dira pas
PPTX
MUG Nantes - MongoDB et son connecteur pour hadoop
PDF
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
Stream processing avec Apache Pulsar
Stream processing et SQL
Stream processing et SQL
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Stream processing et SQL
Stream processing et SQL
Explorez vos données présentes dans MongoDB avec Apache Zeppelin
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Big Data Viz (and much more!) with Apache Zeppelin
Tout ce que le getting started mongodb ne vous dira pas
Explorez vos données avec apache zeppelin
Tout ce que le getting started MongoDB ne vous dira pas
MUG Nantes - MongoDB et son connecteur pour hadoop
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...

Dernier (7)

PDF
Modems expliqués- votre passerelle vers Internet.pdf
PDF
FORMATION EN Programmation En Langage C.pdf
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
presentation_with_intro_compressee IEEE EPS France
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
Modems expliqués- votre passerelle vers Internet.pdf
FORMATION EN Programmation En Langage C.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
Presentation_Securite_Reseaux_Bac+2.pptx
presentation_with_intro_compressee IEEE EPS France
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
Tendances tech 2025 - SFEIR & WENVISION.pdf

Jug summer camp 2017 - Vue.js, même un dev java peut en faire !

  • 1. Speaker : Bruno Bonnin - @_bruno_b_ Vue.js, même un dev Java peut en faire !
  • 2. Bruno Bonnin @_bruno_b_ - 15 septembre Solution Architect @saagie_io #Java #JavaScript #Python #Elastisearch #MongoDB #ArangoDB #NoSQL #Hadoop #BigData #HTML5 #AngularJS #VueJS #WebAPI Nantes, France
  • 3. Smart Data Platform Une véritable ligne d’assemblage Big Data (Data Fabric)
  • 4. Orienté composants Dédié à la création d’interfaces Web Performant Très facile à apprendre Vue.js en quelques mots... Focus sur la couche View Flexible
  • 5. npm install vue-cli -g vue init webpack monprojet npm run dev C’est parti, on l’installe... <script src="https://unpkg.com/vue">Le plus simple Mieux npm install vue Encore mieux
  • 6. … et on code un bon vieux hello world ! <div id="app"> <h1>Hello {{ name }} !</h1> </div> <script> new Vue({ el: '#app', data: { name: 'JUG Summer Camp' } }) </script> Véritable snapshot réalisé sans trucage !!
  • 7. La base: l’instance "Vue" (et ses options) new Vue({ el: '#hero-app', data: { name: 'Deadpool' }, computed: { uppercaseName: function () { return this.name.toUpperCase(); } }, methods: { clearName: function () { this.name = ''; } } }) La totale sur : https://vuejs.org/v2/api/ Les données (réactives: Vue détectera toute modification et fera les màj du DOM nécessaire) Les données calculées (utilisables comme les autres données et mises en cache) Les fonctions utilisables via l’instance de Vue ou dans les directives
  • 8. La base: l’instance "Vue" et Hooks sur le cycle de vie Source: https://vuejs.org/v2/guide/instance.html
  • 9. La base: l'interpolation <h1>Bonjour {{ name }} !</h1> {{ ... }} v-bind <a v-bind:href="search_url">Search</a> <span :title="message"> </span>
  • 10. La base: les directives (v-...) <input type="text" v-model="name" > <button v-on:click="like"> J’aime </button> <div v-if="talk.liked"> Vous aimez ça ! </div> <div v-else> Vous n’aimez pas </div> <div v-for="talk in talks"> <h3>{{ talk.title }}</h3> </div>
  • 12. Les composants Vue.component('barchart', { template: ` <h2>{{title}}</h2> <canvas/>`, props: [ 'title', 'values' ], data: function () { return { chart: null } }, methods: { … } , mounted: function () { … } }) <div id="app"> <barchart v-bind:values="dataset" title="Nice chart !"/> </div> new Vue({ el: 'app', data: { dataset: [] }, mounted: function () { // init dataset } })
  • 13. Les composants .CSS .HTML .JS .VUE + + <template> <div> <h2>{{ title }}</h2> <canvas/> </div> </template> <script> export default { props: [ 'title', 'values' ], data: function () { … }, methods: { … } , mounted: function () { … } } </script> <style scoped> /* Je déteste le css, donc j’en mettrai pas une ligne… */ </style>
  • 14. Démo : un chart en 2 secondes ! (avec un composant qui contient un composant qui contient un composant qui …) App.vue Dataview.vue Chart.vue
  • 15. J’aurais pu en parler... vue-router vuex vue-devtools Effets de transition, mixins, custom directives, server-side rendering, tests unitaires, ... vue-test-utils
  • 17. En conclusion... Après plus de 2 ans d’existence, la communauté grandit vite ! Nombre de stars > 65 000 675k downloads sur le dernier mois Focus sur la simplicité Orienté composant Montée en compétence très rapide Vue.js doit faire partie de votre réflexion vos apps !