SlideShare a Scribd company logo
VUE JS
THE SIMPLE REVOLUTION_
@Rafael_Casuso
A B O U T M E
•Head of JavaScript @StayApp
•CEO @SnowStormIO
•Organizer @VueJsMadrid,
@BotDevMad
•Software Engineer with +10 years
of experience leading teams and
developing.
•Software Architect looking for
revolutionary ways to change the
world.
•Specialties: JavaScript, NodeJS,
Conversational Intelligences.
2
A
GENTLE
INTRODUCTION
+ BASICS
WHAT IS VUEJS?_
‣ A PROGRESSIVE FRAMEWORK FOR BUILDING INTERFACES
‣ MVVM PATTERN WITH FOCUS ON THE VIEWMODEL, CONNECTING
VIEW AND MODEL WITH TWO-WAY REACTIVE DATA-BINDING
‣ CORE VALUES: REACTIVITY, COMPONENTIZATION, MODULARITY,
SIMPLICITY AND STABILITY
‣ INFLUENCED BY ANGULARJS, KNOCKOUTJS, RACTIVEJS AND RIVETJS
MVVM_
INSTANCE LIFECYCLE_
INSTANCE EXAMPLE_
PROPERTIES & METHODS_
‣ METHODS ARE FUNCTIONS TO USE IN THE INSTANCE OR IN DIRECTIVE EXPRESSIONS
‣ PROPERTIES ARE REACTIVE ATTRIBUTES PROXIED BY THE INSTANCE FROM DATA OBJECT
INTERPOLATIONS, DIRECTIVES & FILTERS_
‣ INTERPOLATIONS CAN BE TEXT OR ATTRIBUTES WITH PROPERTIES OR JS EXPRESSIONS
‣ DIRECTIVES ARE V-ATTRIBUTES THAT MODIFY THE DOM WHEN JS EXPRESSION CHANGES
‣ FILTERS ARE FOR TEXT TRANSFORMATIONS, COMPUTED PROPS FOR MORE COMPLEX
THE
REACTIVITY
EXPLORATION
+ MEDIUM
REACTIVITY_
REACTIVITY INTERNALS_
‣ CHANGES ARE TRACKED THROUGH GETTERS (DEPENDENCIES) AND
SETTERS (NOTIFICATIONS) ON DATA PROPERTIES
‣ REACTIVE ROOT PROPERTIES MUST BE DECLARED UPFRONT, NESTED
CAN BE ADDED WITH VM.SET
‣ ALL DOM UPDATES ARE ASYNCHRONOUS, WITH A QUEUE THAT
BUFFERS ALL CHANGES WITHIN THE SAME EVENT LOOP AND WILL BE
RENDERED IN THE NEXT TICK
COMPUTED PROPERTIES AND WATCHERS_
‣ COMPUTED PROPS ARE COMPLEX
MANIPULATIONS OF REACTIVE PROPS,
CACHED BASED ON THEIR
DEPENDENCIES
‣ WATCHERS ARE GENERIC WAY TO REACT
TO DATA CHANGES, FOR
ASYNCHRONOUS OR EXPENSIVE
OPERATIONS
THE
VIEW
MODIFICATION
+ MEDIUM
VIEW TO MODEL_
‣ V-ON DIRECTIVE TO BIND USER EVENTS TO INSTANCE METHODS
‣ IT ACCEPTS EVENT MODIFIERS
FORM INPUT BINDING_
‣ V-MODEL DIRECTIVE TO BIND USER INPUT TO PROPERTIES
‣ V-FOR FOR LOOP ARRAY PROPERTIES
THE
COMPONENTS
COMPOSITION
+ MEDIUM
COMPONENTS ARCHITECTURE_
‣ APPLICATION AS A TREE OF SELF-CONTAINED REUSABLE COMPONENTS
COMPONENTS DEFINITION_
‣ A COMPONENT IS A VUE INSTANCE WITH PREDEFINED OPTIONS
‣ IT EXTENDS A HTML ELEMENT WITH ENCAPSULATED REUSABLE CODE
‣ THEY ARE NOT WEB COMPONENTS SPECIFICATION CUSTOM ELEMENTS:
‣ DO NOT NEED POLYFILLS
‣ IMPORTANT FEATURES LIKE CROSS-COMPONENT DATA FLOW, CUSTOM
EVENT COMMUNICATION AND BUILD TOOLS INTEGRATION
‣ REGISTRATION CAN BE GLOBAL OR LOCAL
‣ DATA (MODEL) MUST BE A FUNCTION TO AVOID SHARING SAME REFERENCE
BETWEEN COMPONENTS
COMPONENT EXAMPLE_
COMPONENTS COMPOSITION_
‣ COMPONENTS ARE USED TOGETHER USUALLY IN PARENT-CHILD RELATIONS
‣ THEIR COMMUNICATION IS SUMMARIZED AS PROPS DOWN, EVENTS UP:
‣ PARENT PASSES DOWN DATA TO THE CHILD VIA PROPS
‣ CHILD SENDS MESSAGES TO PARENT VIA EVENTS
PROPS_
‣ CUSTOM ATTRIBUTES TO PASS DOWN DATA FROM PARENT TO CHILD COMPONENTS
‣ THEY FOLLOW ONE-WAY-DOWN PATTERN, CAN NOT BE MODIFIED IN CHILD
‣ CHILD MUST DECLARE THE PROPS IT EXPECTS
‣ THEY CAN BE BINDED IN THE TEMPLATE IN ORDER TO UPDATE WHEN PARENT DATA
CHANGES
CUSTOM EVENTS_
‣ VUE INSTANCE IMPLEMENTS AN EVENT INTERFACE:
‣ LISTEN AN EVENT WITH $ON(EVENTNAME)
‣ TRIGGERS AN EVENT WITH $EMIT(EVENTNAME)
‣ PARENT COMPONENT CAN LISTEN CHILD EVENTS WITH V-ON DIRECTLY IN TEMPLATE
CONTENT DISTRIBUTION WITH SLOTS_
‣ EVERYTHING IN PARENT TEMPLATE WILL BE
COMPILED IN PARENT SCOPE
‣ EVERYTHING IN CHILD TEMPLATE WILL BE
COMPILED IN CHILD SCOPE
‣ SLOTS ARE PLACEHOLDERS FOR PARENT
CONTENT INTO CHILD COMPONENT
THE
COMPLEX
APPLICATION
+ MEDIUM
SINGLE-FILE COMPONENTS_
‣ SINGLE FILE .VUE WHERE TEMPLATE,
JAVASCRIPT AND CSS IS
ENCAPSULATED
‣ BUILD TOOL LIKE WEBPACK OR
BROWSERIFY IS NEEDED
‣ VUE-LOADER FOR WEBPACK &
VUEIFY FOR BROWSERIFY
‣ COMPLETE SYNTAX HIGHLIGHTING
‣ COMMONJS MODULES
‣ COMPONENT-SCOPED CSS
ROUTING_
‣ VUE-ROUTER IS THE OFFICIAL CORE PLUGIN
‣ DYNAMIC ROUTING MATCHING WITH PARAMS AND QUERY PARAMS
‣ NESTED ROUTES, NAMED ROUTES
‣ REDIRECT & ALIAS
ROUTING EXAMPLE_
STATE MANAGEMENT_
‣ VUEX IS THE ELM-INSPIRED OFFICIAL FLUX-LIKE IMPLEMENTATION
‣ VUEX CORE IS THE STORE, A CONTAINER OF APPLICATION STATE
‣ STORE IS THE SOURCE OF TRUTH
STATE MANAGEMENT_
‣ STORE PASSED TO ROOT INSTANCE IS
INJECTED IN CHILD COMPONENTS
‣ COMPONENTS CAN STILL HAVE LOCAL
STATE
‣ STORE STATES ONLY CHANGES
THROUGH COMMITTING MUTATIONS
‣ ACTIONS COMMIT MUTATIONS AND
CAN CONTAIN ASYNC OPERATIONS
TOOLS_
‣ VUE-CLI FOR SCAFFOLDING
PROJECTS
‣ VUE DEV TOOLS FOR
INSPECTING COMPONENTS,
PROPERTIES AND TIME-TRAVEL
DEBUGGING
VUEJS
VS
OTHERS
+ ADVANCED
VUEJS 2.0 BENCHMARKS_
‣ PERFORMANCE
VUEJS VS REACT_
‣ REACT WINS IN RICHNESS OF ITS ECOSYSTEM AND CUSTOM RENDERERS
‣ VUEJS WINS IN ALL PERFORMANCE PROFILES
‣ ITS VIRTUAL DOM IMPLEMENTATION SNABBDOM-BASED IS FASTER WITH
LESS CALCULATIONS
‣ UPDATE PERFORMANCE:
‣ REACT RE-RENDERS WHOLE SUB-TREE

WHEN COMPONENT STATE CHANGES
‣ VUEJS TRACK DEPS ON RENDERING SO ONLY

UPDATES SPECIFIC COMPONENTS
‣ VUEJS FASTER DEV MODE WITH UP TO 10XFRAME RATE
VueJS: The Simple Revolution
THANK YOU

More Related Content

What's hot (20)

PPT
Vue.js Getting Started
Murat Doğan
 
PPTX
An introduction to Vue.js
Pagepro
 
PDF
Why Vue.js?
Jonathan Goode
 
PDF
introduction to Vue.js 3
ArezooKmn
 
PDF
An introduction to Vue.js
Javier Lafora Rey
 
PDF
Vue.js for beginners
Julio Bitencourt
 
PPTX
Vue js for beginner
Chandrasekar G
 
PDF
Vue, vue router, vuex
Samundra khatri
 
PDF
The Point of Vue - Intro to Vue.js
Holly Schinsky
 
ODP
Basics of VueJS
Squash Apps Pvt Ltd
 
PDF
Introduction to Vue.js
Meir Rotstein
 
PDF
NodeJS for Beginner
Apaichon Punopas
 
PDF
Vue JS Intro
Muhammad Rizki Rijal
 
PDF
Vue.js
Jadson Santos
 
PDF
Introduction to Node.js
Rob O'Doherty
 
PPTX
Introduction to NodeJS
Cere Labs Pvt. Ltd
 
PDF
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
Edureka!
 
PDF
Introduction to ReactJS
Hoang Long
 
PDF
Introduction to VueJS & Vuex
Bernd Alter
 
PPTX
Node js introduction
Joseph de Castelnau
 
Vue.js Getting Started
Murat Doğan
 
An introduction to Vue.js
Pagepro
 
Why Vue.js?
Jonathan Goode
 
introduction to Vue.js 3
ArezooKmn
 
An introduction to Vue.js
Javier Lafora Rey
 
Vue.js for beginners
Julio Bitencourt
 
Vue js for beginner
Chandrasekar G
 
Vue, vue router, vuex
Samundra khatri
 
The Point of Vue - Intro to Vue.js
Holly Schinsky
 
Basics of VueJS
Squash Apps Pvt Ltd
 
Introduction to Vue.js
Meir Rotstein
 
NodeJS for Beginner
Apaichon Punopas
 
Vue JS Intro
Muhammad Rizki Rijal
 
Introduction to Node.js
Rob O'Doherty
 
Introduction to NodeJS
Cere Labs Pvt. Ltd
 
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
Edureka!
 
Introduction to ReactJS
Hoang Long
 
Introduction to VueJS & Vuex
Bernd Alter
 
Node js introduction
Joseph de Castelnau
 

Viewers also liked (20)

PDF
Microservices Architecture For Conversational Intelligence Platform
Rafael Casuso Romate
 
PDF
Vue js 大型專案架構
Hina Chen
 
PDF
第一次用 Vue.js 就愛上 [改]
Kuro Hsu
 
PDF
Vuejs testing
Greg TAPPERO
 
PPTX
Vue 2.0 + Vuex Router & Vuex at Vue.js
Takuya Tejima
 
PPTX
How tovuejs
Daniel Chou
 
PDF
Vue.js is boring - and that's a good thing
Joonas Lehtonen
 
PDF
Love at first Vue
Dalibor Gogic
 
PDF
JS class slides (2016)
Yves-Emmanuel Jutard
 
PDF
VueJS meetup (Basics) @ nodum.io
Wietse Wind
 
PDF
nodum.io MongoDB Meetup (Dutch)
Wietse Wind
 
PPTX
World of Services: Software Architecture That is Eating the World
Elena Gorman
 
PPTX
VueJS - Uma alternativa elegante
Jonathan Bijos
 
PDF
Gui Input Tools for Math [UKMC09]
Greg TAPPERO
 
PDF
JS Class 2016
Yves-Emmanuel Jutard
 
PDF
Politische Ponerologie
MCExorzist
 
PDF
Muammar al-Gaddafi - Das Grüne Buch
MCExorzist
 
PDF
Real History - The Bad War (english 115s)
MCExorzist
 
PDF
Gerd Honsik - Freispruch für Hitler - 1988 - 233S
MCExorzist
 
PDF
Thomas Goodrich - Hellstorm The Death Of Nazi Germany
MCExorzist
 
Microservices Architecture For Conversational Intelligence Platform
Rafael Casuso Romate
 
Vue js 大型專案架構
Hina Chen
 
第一次用 Vue.js 就愛上 [改]
Kuro Hsu
 
Vuejs testing
Greg TAPPERO
 
Vue 2.0 + Vuex Router & Vuex at Vue.js
Takuya Tejima
 
How tovuejs
Daniel Chou
 
Vue.js is boring - and that's a good thing
Joonas Lehtonen
 
Love at first Vue
Dalibor Gogic
 
JS class slides (2016)
Yves-Emmanuel Jutard
 
VueJS meetup (Basics) @ nodum.io
Wietse Wind
 
nodum.io MongoDB Meetup (Dutch)
Wietse Wind
 
World of Services: Software Architecture That is Eating the World
Elena Gorman
 
VueJS - Uma alternativa elegante
Jonathan Bijos
 
Gui Input Tools for Math [UKMC09]
Greg TAPPERO
 
JS Class 2016
Yves-Emmanuel Jutard
 
Politische Ponerologie
MCExorzist
 
Muammar al-Gaddafi - Das Grüne Buch
MCExorzist
 
Real History - The Bad War (english 115s)
MCExorzist
 
Gerd Honsik - Freispruch für Hitler - 1988 - 233S
MCExorzist
 
Thomas Goodrich - Hellstorm The Death Of Nazi Germany
MCExorzist
 
Ad

Similar to VueJS: The Simple Revolution (20)

PDF
Intro to VueJS Workshop
Rafael Casuso Romate
 
PDF
Component-Oriented Progressive Web Applications with VueJS
Rafael Casuso Romate
 
PDF
VueJS in Action
Rafael Casuso Romate
 
PDF
Introduction to Weex: Mobile Apps with VueJS
Rafael Casuso Romate
 
PDF
State management for enterprise angular applications
Ilia Idakiev
 
PDF
Moving existing apps to the cloud
Ram Maddali
 
PPTX
Business Driven Architecture
Vinay Shivaswamy
 
PDF
Lecture 05 - Creating a website with Razor Pages.pdf
Lê Thưởng
 
PDF
Improve your Cloud Integrations with Test-driven Development
OPITZ CONSULTING Deutschland
 
PDF
VueJS Best Practices
Fatih Acet
 
PPTX
Asp.net
Anchit Rajawat
 
PDF
Application architecture doesn't have to suck
jtregunna
 
PDF
Declarative observability management for Microservice architectures
Sven Bernhardt
 
PDF
TechTalk: Going Full Circle - Linking Code to Tests to Requirements and Back ...
CA Technologies
 
PPTX
Database concepts and its uses, advantages and disadvantages.pptx
BhuvanaSonu
 
PDF
Best online js training institute in chandigarh and converted
shubhamrana767862
 
PDF
Robust web apps with React.js
Max Klymyshyn
 
PPTX
Best online js training institute in chandigarh and
shubhamrana767862
 
PDF
Web(abap introduction)
Kranthi Kumar
 
DOCX
Karthik .net resume
Karthik Reddy
 
Intro to VueJS Workshop
Rafael Casuso Romate
 
Component-Oriented Progressive Web Applications with VueJS
Rafael Casuso Romate
 
VueJS in Action
Rafael Casuso Romate
 
Introduction to Weex: Mobile Apps with VueJS
Rafael Casuso Romate
 
State management for enterprise angular applications
Ilia Idakiev
 
Moving existing apps to the cloud
Ram Maddali
 
Business Driven Architecture
Vinay Shivaswamy
 
Lecture 05 - Creating a website with Razor Pages.pdf
Lê Thưởng
 
Improve your Cloud Integrations with Test-driven Development
OPITZ CONSULTING Deutschland
 
VueJS Best Practices
Fatih Acet
 
Application architecture doesn't have to suck
jtregunna
 
Declarative observability management for Microservice architectures
Sven Bernhardt
 
TechTalk: Going Full Circle - Linking Code to Tests to Requirements and Back ...
CA Technologies
 
Database concepts and its uses, advantages and disadvantages.pptx
BhuvanaSonu
 
Best online js training institute in chandigarh and converted
shubhamrana767862
 
Robust web apps with React.js
Max Klymyshyn
 
Best online js training institute in chandigarh and
shubhamrana767862
 
Web(abap introduction)
Kranthi Kumar
 
Karthik .net resume
Karthik Reddy
 
Ad

More from Rafael Casuso Romate (7)

PDF
Rise and Fall of the Frontend Developer
Rafael Casuso Romate
 
PDF
Nuxt Avanzado (de Scaffolding a MVP)
Rafael Casuso Romate
 
PDF
The Core of Agile
Rafael Casuso Romate
 
PDF
Solid NodeJS with TypeScript, Jest & NestJS
Rafael Casuso Romate
 
PDF
The Voice Interface Revolution
Rafael Casuso Romate
 
PDF
Google Assistant Revolution
Rafael Casuso Romate
 
PDF
JavaScript Editions ES7, ES8 and ES9 vs V8
Rafael Casuso Romate
 
Rise and Fall of the Frontend Developer
Rafael Casuso Romate
 
Nuxt Avanzado (de Scaffolding a MVP)
Rafael Casuso Romate
 
The Core of Agile
Rafael Casuso Romate
 
Solid NodeJS with TypeScript, Jest & NestJS
Rafael Casuso Romate
 
The Voice Interface Revolution
Rafael Casuso Romate
 
Google Assistant Revolution
Rafael Casuso Romate
 
JavaScript Editions ES7, ES8 and ES9 vs V8
Rafael Casuso Romate
 

Recently uploaded (20)

PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PPTX
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
PPTX
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
DOCX
Import Data Form Excel to Tally Services
Tally xperts
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PPTX
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
PDF
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Import Data Form Excel to Tally Services
Tally xperts
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
Human Resources Information System (HRIS)
Amity University, Patna
 

VueJS: The Simple Revolution

  • 1. VUE JS THE SIMPLE REVOLUTION_
  • 2. @Rafael_Casuso A B O U T M E •Head of JavaScript @StayApp •CEO @SnowStormIO •Organizer @VueJsMadrid, @BotDevMad •Software Engineer with +10 years of experience leading teams and developing. •Software Architect looking for revolutionary ways to change the world. •Specialties: JavaScript, NodeJS, Conversational Intelligences. 2
  • 4. WHAT IS VUEJS?_ ‣ A PROGRESSIVE FRAMEWORK FOR BUILDING INTERFACES ‣ MVVM PATTERN WITH FOCUS ON THE VIEWMODEL, CONNECTING VIEW AND MODEL WITH TWO-WAY REACTIVE DATA-BINDING ‣ CORE VALUES: REACTIVITY, COMPONENTIZATION, MODULARITY, SIMPLICITY AND STABILITY ‣ INFLUENCED BY ANGULARJS, KNOCKOUTJS, RACTIVEJS AND RIVETJS
  • 8. PROPERTIES & METHODS_ ‣ METHODS ARE FUNCTIONS TO USE IN THE INSTANCE OR IN DIRECTIVE EXPRESSIONS ‣ PROPERTIES ARE REACTIVE ATTRIBUTES PROXIED BY THE INSTANCE FROM DATA OBJECT
  • 9. INTERPOLATIONS, DIRECTIVES & FILTERS_ ‣ INTERPOLATIONS CAN BE TEXT OR ATTRIBUTES WITH PROPERTIES OR JS EXPRESSIONS ‣ DIRECTIVES ARE V-ATTRIBUTES THAT MODIFY THE DOM WHEN JS EXPRESSION CHANGES ‣ FILTERS ARE FOR TEXT TRANSFORMATIONS, COMPUTED PROPS FOR MORE COMPLEX
  • 12. REACTIVITY INTERNALS_ ‣ CHANGES ARE TRACKED THROUGH GETTERS (DEPENDENCIES) AND SETTERS (NOTIFICATIONS) ON DATA PROPERTIES ‣ REACTIVE ROOT PROPERTIES MUST BE DECLARED UPFRONT, NESTED CAN BE ADDED WITH VM.SET ‣ ALL DOM UPDATES ARE ASYNCHRONOUS, WITH A QUEUE THAT BUFFERS ALL CHANGES WITHIN THE SAME EVENT LOOP AND WILL BE RENDERED IN THE NEXT TICK
  • 13. COMPUTED PROPERTIES AND WATCHERS_ ‣ COMPUTED PROPS ARE COMPLEX MANIPULATIONS OF REACTIVE PROPS, CACHED BASED ON THEIR DEPENDENCIES ‣ WATCHERS ARE GENERIC WAY TO REACT TO DATA CHANGES, FOR ASYNCHRONOUS OR EXPENSIVE OPERATIONS
  • 15. VIEW TO MODEL_ ‣ V-ON DIRECTIVE TO BIND USER EVENTS TO INSTANCE METHODS ‣ IT ACCEPTS EVENT MODIFIERS
  • 16. FORM INPUT BINDING_ ‣ V-MODEL DIRECTIVE TO BIND USER INPUT TO PROPERTIES ‣ V-FOR FOR LOOP ARRAY PROPERTIES
  • 18. COMPONENTS ARCHITECTURE_ ‣ APPLICATION AS A TREE OF SELF-CONTAINED REUSABLE COMPONENTS
  • 19. COMPONENTS DEFINITION_ ‣ A COMPONENT IS A VUE INSTANCE WITH PREDEFINED OPTIONS ‣ IT EXTENDS A HTML ELEMENT WITH ENCAPSULATED REUSABLE CODE ‣ THEY ARE NOT WEB COMPONENTS SPECIFICATION CUSTOM ELEMENTS: ‣ DO NOT NEED POLYFILLS ‣ IMPORTANT FEATURES LIKE CROSS-COMPONENT DATA FLOW, CUSTOM EVENT COMMUNICATION AND BUILD TOOLS INTEGRATION ‣ REGISTRATION CAN BE GLOBAL OR LOCAL ‣ DATA (MODEL) MUST BE A FUNCTION TO AVOID SHARING SAME REFERENCE BETWEEN COMPONENTS
  • 21. COMPONENTS COMPOSITION_ ‣ COMPONENTS ARE USED TOGETHER USUALLY IN PARENT-CHILD RELATIONS ‣ THEIR COMMUNICATION IS SUMMARIZED AS PROPS DOWN, EVENTS UP: ‣ PARENT PASSES DOWN DATA TO THE CHILD VIA PROPS ‣ CHILD SENDS MESSAGES TO PARENT VIA EVENTS
  • 22. PROPS_ ‣ CUSTOM ATTRIBUTES TO PASS DOWN DATA FROM PARENT TO CHILD COMPONENTS ‣ THEY FOLLOW ONE-WAY-DOWN PATTERN, CAN NOT BE MODIFIED IN CHILD ‣ CHILD MUST DECLARE THE PROPS IT EXPECTS ‣ THEY CAN BE BINDED IN THE TEMPLATE IN ORDER TO UPDATE WHEN PARENT DATA CHANGES
  • 23. CUSTOM EVENTS_ ‣ VUE INSTANCE IMPLEMENTS AN EVENT INTERFACE: ‣ LISTEN AN EVENT WITH $ON(EVENTNAME) ‣ TRIGGERS AN EVENT WITH $EMIT(EVENTNAME) ‣ PARENT COMPONENT CAN LISTEN CHILD EVENTS WITH V-ON DIRECTLY IN TEMPLATE
  • 24. CONTENT DISTRIBUTION WITH SLOTS_ ‣ EVERYTHING IN PARENT TEMPLATE WILL BE COMPILED IN PARENT SCOPE ‣ EVERYTHING IN CHILD TEMPLATE WILL BE COMPILED IN CHILD SCOPE ‣ SLOTS ARE PLACEHOLDERS FOR PARENT CONTENT INTO CHILD COMPONENT
  • 26. SINGLE-FILE COMPONENTS_ ‣ SINGLE FILE .VUE WHERE TEMPLATE, JAVASCRIPT AND CSS IS ENCAPSULATED ‣ BUILD TOOL LIKE WEBPACK OR BROWSERIFY IS NEEDED ‣ VUE-LOADER FOR WEBPACK & VUEIFY FOR BROWSERIFY ‣ COMPLETE SYNTAX HIGHLIGHTING ‣ COMMONJS MODULES ‣ COMPONENT-SCOPED CSS
  • 27. ROUTING_ ‣ VUE-ROUTER IS THE OFFICIAL CORE PLUGIN ‣ DYNAMIC ROUTING MATCHING WITH PARAMS AND QUERY PARAMS ‣ NESTED ROUTES, NAMED ROUTES ‣ REDIRECT & ALIAS
  • 29. STATE MANAGEMENT_ ‣ VUEX IS THE ELM-INSPIRED OFFICIAL FLUX-LIKE IMPLEMENTATION ‣ VUEX CORE IS THE STORE, A CONTAINER OF APPLICATION STATE ‣ STORE IS THE SOURCE OF TRUTH
  • 30. STATE MANAGEMENT_ ‣ STORE PASSED TO ROOT INSTANCE IS INJECTED IN CHILD COMPONENTS ‣ COMPONENTS CAN STILL HAVE LOCAL STATE ‣ STORE STATES ONLY CHANGES THROUGH COMMITTING MUTATIONS ‣ ACTIONS COMMIT MUTATIONS AND CAN CONTAIN ASYNC OPERATIONS
  • 31. TOOLS_ ‣ VUE-CLI FOR SCAFFOLDING PROJECTS ‣ VUE DEV TOOLS FOR INSPECTING COMPONENTS, PROPERTIES AND TIME-TRAVEL DEBUGGING
  • 34. VUEJS VS REACT_ ‣ REACT WINS IN RICHNESS OF ITS ECOSYSTEM AND CUSTOM RENDERERS ‣ VUEJS WINS IN ALL PERFORMANCE PROFILES ‣ ITS VIRTUAL DOM IMPLEMENTATION SNABBDOM-BASED IS FASTER WITH LESS CALCULATIONS ‣ UPDATE PERFORMANCE: ‣ REACT RE-RENDERS WHOLE SUB-TREE
 WHEN COMPONENT STATE CHANGES ‣ VUEJS TRACK DEPS ON RENDERING SO ONLY
 UPDATES SPECIFIC COMPONENTS ‣ VUEJS FASTER DEV MODE WITH UP TO 10XFRAME RATE