APPMAN - András Takács (att@pulilab.com)
DON NICO - Nicolò Maria Mezzopera (nico@pulilab.com)
MR F - Fekete György (f@pulilab.com)
2017-10-19 VUEJS Budapest meetup @ LogMeInHQ
The Progressive
JavaScript Framework
<script src="https://unpkg.com/vue"></script>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
<div id="app">
{{ message }}
</div>
Vue.component('todo-item', {
template: '<li>This is a todo</li>'
})
<ol>
<todo-item></todo-item>
</ol>
var vm = new Vue({
data: data
)}
const vm = new Vue({
props: ['default'],
data () {
return {
a: 1,
b: 2
}
},
computed: {
c () {
return this.a + this.b;
}
},
methods: {
divide (value) {
const final = value ? value : this.default
return this.c / final;
}
},
components: {}
})
var vm = new Vue({
data: {
a: 1
}
})
// `vm.a` is now reactive
vm.b = 2
// `vm.b` is NOT reactive
the problem we wanted to solve:
Considering all of the above VUEJS was our solution
(sudo) npm install -g vue-cli
vue init webpack vuejs-is-awesome
cd vuejs-is-awesome
npm install
npm run dev
Nuxt.js: a framework for creating Universal Vue.js Applications
We used it for
Vuex: a state management pattern + library for Vue.js applications
Enabled us to:
A pinch of probability is worth a pound of perhaps.”— James Thurber
We LOVE Testing...
...but unit test are not enough ...
... and component unit testing are to prone to break:
Family and relatives:
Dad Angular JS
Son React JS
Son Vue JS
Fat Uncle Ember Js
Unpopular Uncle PolymerJS
Grandpa jQuery
Angular JS
70 y.o. overweight dad
Has his hands in a lot of projects
A bit slow, fixated on his own traditions
Likes stability, dislikes other families approaches
Popular
Can not stop thinking that Grandpa jQuery was right
React
30 y.o. first rebel son
Hipster attitude but with a lot of friends
Drinks a (gluten free) pumpkin flavoured mocaccino
Refuses all the teaching coming from his Dad but in his rebellion discovered a lot of cool new approaches
Vue Js
18 y.o. .late son
Learned from dad's mistakes
Ready to embrace his older brothers cool ideas
Too busy studying to make friends during childhood but of increasing popularity
Has a hard time stepping out of his popular brother's shadow
The Question:
Now that grandpa jQuery is ready to retire, what will be the name written on his will ? Who will inerith his legacy?
Angular | React | VueJs | |
---|---|---|---|
Docs | 2 | 3 | 5 |
Size | 143 kb | 43kb | 23kb |
Speed | 3 | 3 | 4 |
Memory | 3 | 3 | 4 |
Learning Curve | 2 | 2 | 5 |
3rd party libs | 5 | 4 | 3 |
Stability / support | LTS | Frozen API | Semver |
Upgrade | 1 | 5 | 3 |
Community | 5 | 5 | 3 |
Jobs | 4 | 5 | 2 |
Flexibility | 2 | 3 | 5 |
Native | 4 (NativeScript) | 5 (ReactNative) | 2 (Weex) |
Hybrid | 5 ( Ionic) | 5 (ReactNative) | 5 (Quasar) |
D.H.A (A) | Malibu (R) | IMP (V) | |
---|---|---|---|
Size | Big | Small | Big |
Speed | 3 | 2 | 5 |
# Refactor | 1 | 5 | 5 |
# Bugs | 2 | 3 | 4 |
State Mgmt. | N/Y (Redux) | N | Y (Vuex) |
UI Speed | 3 | 5 | 5 |
Js Version | ES6 | ES6 | ES6 |
SSR / SEO | N | Y | Y |
"NaNNaNNaNNaNNaNNaNNaN"
About Quasar framework
A framework for building web apps,
PWAs, hybrid mobile apps (Cordova) or Electron apps
with the same codebase
based on VUE 2.0
The Ionic of VUE
PWA - Progressive Web Applications
Google's 2 cents on
how to make web apps from now on
Cordova
Open source tool to build iOS & Android apps
2 platforms, one codebase,
maybe some plugins & functionality "if"-ed
How does it fit into the ecosystem?
How does it fit into the ecosystem?
Hopefully not gonna see:
// 要做:
vuejs.org team section
quasar-cli
UI & Styling in Quasar
Quasar Ionic
31,781 ⭐️ vs 3.796 ⭐️
Latest improvements in Quasar
Why did we go with it?
worked with Ionic & Cordova before
Angular fatigue
VUE inside
needed a motivation pill after Polymer
something new & familiar at once
Well around framework, not only for web apps
Tricks & tips & best practices I: VUE
data magic
DOM magic
Tricks & tips & best practices II: Quasar
Tricks & tips & best practices III: Cordova
cordova-plugin-downloadmanager
com.jcesarmobile.filepicker (iOS)
& com.cesidiodibenedetto.filechooser (Android)
Questions?
Thank you!
https://slides.com/gyorgyfekete/its-not-me-its-vue