SlideShare a Scribd company logo
1
VueJS
#1 Hello World
Contact: Emanuell Minciu @EmanuellMinciu
Chris Thacker @TeamLHC
John Harvey @busjharv
Adam Spencer @MSMGroupcareers
2
Agenda
• Introduction
• MoneySuperMarket
• Demo
• Q&A
• Wrap up
3
MoneySuperMarket
4
Hello World!
5
How it feels to learn JavaScript
6
Yes you do
7
Vue vs React
8
Why VueJS?
9
Why VueJS? - continued
VueJS
• Faster Virtual DOM
• Reactive and composable view components
• Easier to learn (especially if coming from an
Angular background)
• Well documented
• Single File Components that are not JSX (cleaner
code)
• More lightweight (GZIPPED at 32kb)
ReactJS
• Virtual DOM
• Reactive and composable view components
• Not a straightforward setup
• Richer documentation but gets abstract once
you dive into it
• React’s license was initially problematic for us
(not the case any more)
• 68% larger in size (GZIPPED at 54kb)
10
Challenges?
11
Templates and Instances
12
Simple Vue application
13
Accessing data inside a Vue instance
14
Data manipulation
15
Directives and binding to HTML attributes
16
Directives & Binding
17
Listening to events
18
Events
19
Executing JavaScript code in templates
20
JavaScript in Templates
21
Two-way data binding
22
Two-way data binding
23
Reacting to changes with computed
properties
24
Computed property
25
Watching to changes
26
Watch property
27
Conditional rendering
28
v-if & v-else
29
Rendering lists with v-for
30
v-for
31
VueJS
Known options for a Vue instance:
• el: connects to DOM
• data: stored data to be used
• methods: methods of the Vue instance
• computed: dependent properties
• watch: execute code upon data changes
Quick recap
32
Using multiple Vue instances
33
Multiple instances
34
An introduction to components
35
Components
36
Parent – Child relationship
37
Communication
38
VueJS
• Slots
• Dynamic components
• Custom directives
• Mixins
• Filters
• Animations
Advanced concepts
39
Routing with vue-router
40
Routing
41
State management with Vuex
42
Vuex
43
Vuex
44
VueJS
45
VueJS
Do I need a complex setup / workflow?
46
Questions?
4747
Wrap Up
• Next Meetup not confirmed – March / April
• 3 team members attending VueJS
Amsterdam on 16th of February
• Want to get involved? – get in touch with
us!
Ad

Recommended

Node.js primer
Node.js primer
Swapnil Mishra
 
NodeSummit - MEAN Stack
NodeSummit - MEAN Stack
Valeri Karpov
 
Intro to Knockout.JS for Salesforce1
Intro to Knockout.JS for Salesforce1
Boris Bachovski
 
Beyond the MEAN Stack: Thinking Small with Node.js for the Enterprise
Beyond the MEAN Stack: Thinking Small with Node.js for the Enterprise
Forrest Norvell
 
Node js
Node js
Krishna Chaytaniah
 
MEAN stack
MEAN stack
Iryney Baran
 
MongoDB and the MEAN Stack
MongoDB and the MEAN Stack
MongoDB
 
MEAN Stack - Google Developers Live 10/03/2013
MEAN Stack - Google Developers Live 10/03/2013
Valeri Karpov
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Maurice De Beijer [MVP]
 
Get MEAN! Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stack
Nicholas McClay
 
NodeJS and what is actually does
NodeJS and what is actually does
Victor Reyes Heitmann
 
Introduction to mean stack
Introduction to mean stack
Praveen Gubbala
 
Node js (runtime environment + js library) platform
Node js (runtime environment + js library) platform
Sreenivas Kappala
 
Nodejs
Nodejs
Prem Sanil
 
Owning Web Performance
Owning Web Performance
Wesley Hales
 
How it's made - MyGet.org - AzureConf
How it's made - MyGet.org - AzureConf
Maarten Balliauw
 
Mean PPT
Mean PPT
Harendra Singh Bisht
 
AZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meeting
Maarten Balliauw
 
The MEAN Stack
The MEAN Stack
Md. Ziaul Haq
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devices
Wesley Hales
 
Project Timbit
Project Timbit
Edward de Groot
 
Scalable server component using NodeJS & ExpressJS
Scalable server component using NodeJS & ExpressJS
Andhy Koesnandar
 
Node js projects
Node js projects
💾 Radek Fabisiak
 
MongoDB Days Silicon Valley: Building Applications with the MEAN Stack
MongoDB Days Silicon Valley: Building Applications with the MEAN Stack
MongoDB
 
MEAN Stack
MEAN Stack
Dotitude
 
extended slow parts, HTML5 meets WPO
extended slow parts, HTML5 meets WPO
Francesco Fullone
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Conference
 
An Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock
 
An introduction to Vue.js
An introduction to Vue.js
TO THE NEW Pvt. Ltd.
 

More Related Content

What's hot (20)

Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Maurice De Beijer [MVP]
 
Get MEAN! Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stack
Nicholas McClay
 
NodeJS and what is actually does
NodeJS and what is actually does
Victor Reyes Heitmann
 
Introduction to mean stack
Introduction to mean stack
Praveen Gubbala
 
Node js (runtime environment + js library) platform
Node js (runtime environment + js library) platform
Sreenivas Kappala
 
Nodejs
Nodejs
Prem Sanil
 
Owning Web Performance
Owning Web Performance
Wesley Hales
 
How it's made - MyGet.org - AzureConf
How it's made - MyGet.org - AzureConf
Maarten Balliauw
 
Mean PPT
Mean PPT
Harendra Singh Bisht
 
AZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meeting
Maarten Balliauw
 
The MEAN Stack
The MEAN Stack
Md. Ziaul Haq
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devices
Wesley Hales
 
Project Timbit
Project Timbit
Edward de Groot
 
Scalable server component using NodeJS & ExpressJS
Scalable server component using NodeJS & ExpressJS
Andhy Koesnandar
 
Node js projects
Node js projects
💾 Radek Fabisiak
 
MongoDB Days Silicon Valley: Building Applications with the MEAN Stack
MongoDB Days Silicon Valley: Building Applications with the MEAN Stack
MongoDB
 
MEAN Stack
MEAN Stack
Dotitude
 
extended slow parts, HTML5 meets WPO
extended slow parts, HTML5 meets WPO
Francesco Fullone
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Conference
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
Maurice De Beijer [MVP]
 
Get MEAN! Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stack
Nicholas McClay
 
Introduction to mean stack
Introduction to mean stack
Praveen Gubbala
 
Node js (runtime environment + js library) platform
Node js (runtime environment + js library) platform
Sreenivas Kappala
 
Owning Web Performance
Owning Web Performance
Wesley Hales
 
How it's made - MyGet.org - AzureConf
How it's made - MyGet.org - AzureConf
Maarten Balliauw
 
AZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meeting
Maarten Balliauw
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devices
Wesley Hales
 
Scalable server component using NodeJS & ExpressJS
Scalable server component using NodeJS & ExpressJS
Andhy Koesnandar
 
MongoDB Days Silicon Valley: Building Applications with the MEAN Stack
MongoDB Days Silicon Valley: Building Applications with the MEAN Stack
MongoDB
 
MEAN Stack
MEAN Stack
Dotitude
 
extended slow parts, HTML5 meets WPO
extended slow parts, HTML5 meets WPO
Francesco Fullone
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Conference
 

Similar to Vue.JS Hello World (20)

An Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock
 
An introduction to Vue.js
An introduction to Vue.js
TO THE NEW Pvt. Ltd.
 
Basics of Vue.js 2019
Basics of Vue.js 2019
Paul Bele
 
What is Vue.js in Software Development.docx.pdf
What is Vue.js in Software Development.docx.pdf
MPIRIC Software
 
Vue.js - An Introduction
Vue.js - An Introduction
saadulde
 
Web Development with VueJS : The Complete Guide
Web Development with VueJS : The Complete Guide
Sam Dias
 
Vue.js
Vue.js
Jadson Santos
 
Beyond Helloworld - Real World Vue.js Development Tips
Beyond Helloworld - Real World Vue.js Development Tips
Chris Finnigan
 
Vue.js Glasgow Meetup: Beyond Helloworld
Vue.js Glasgow Meetup: Beyond Helloworld
Chris Finnigan
 
Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
Lucas Jellema
 
Vue.js for beginners
Vue.js for beginners
Julio Bitencourt
 
Introduction to VueJS for begginers with examples | Namspace IT
Introduction to VueJS for begginers with examples | Namspace IT
namespaceit
 
Love at first Vue
Love at first Vue
Dalibor Gogic
 
Intro to VueJS Workshop
Intro to VueJS Workshop
Rafael Casuso Romate
 
Basics of VueJS
Basics of VueJS
Squash Apps Pvt Ltd
 
Progressive Javascript: Why React when you can Vue?
Progressive Javascript: Why React when you can Vue?
Sonal Raj
 
Why do JavaScript enthusiast think of Vue.js for building real-time web appli...
Why do JavaScript enthusiast think of Vue.js for building real-time web appli...
Katy Slemon
 
VueJS Introduction
VueJS Introduction
David Ličen
 
Vue js and Vue Material
Vue js and Vue Material
Eueung Mulyana
 
Why Use Vue JS The Ultimate Guide for Frontend Every Aspect Covered.pdf
Why Use Vue JS The Ultimate Guide for Frontend Every Aspect Covered.pdf
AddWeb Solution Pvt. Ltd.
 
An Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock
 
Basics of Vue.js 2019
Basics of Vue.js 2019
Paul Bele
 
What is Vue.js in Software Development.docx.pdf
What is Vue.js in Software Development.docx.pdf
MPIRIC Software
 
Vue.js - An Introduction
Vue.js - An Introduction
saadulde
 
Web Development with VueJS : The Complete Guide
Web Development with VueJS : The Complete Guide
Sam Dias
 
Beyond Helloworld - Real World Vue.js Development Tips
Beyond Helloworld - Real World Vue.js Development Tips
Chris Finnigan
 
Vue.js Glasgow Meetup: Beyond Helloworld
Vue.js Glasgow Meetup: Beyond Helloworld
Chris Finnigan
 
Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
Lucas Jellema
 
Introduction to VueJS for begginers with examples | Namspace IT
Introduction to VueJS for begginers with examples | Namspace IT
namespaceit
 
Progressive Javascript: Why React when you can Vue?
Progressive Javascript: Why React when you can Vue?
Sonal Raj
 
Why do JavaScript enthusiast think of Vue.js for building real-time web appli...
Why do JavaScript enthusiast think of Vue.js for building real-time web appli...
Katy Slemon
 
VueJS Introduction
VueJS Introduction
David Ličen
 
Vue js and Vue Material
Vue js and Vue Material
Eueung Mulyana
 
Why Use Vue JS The Ultimate Guide for Frontend Every Aspect Covered.pdf
Why Use Vue JS The Ultimate Guide for Frontend Every Aspect Covered.pdf
AddWeb Solution Pvt. Ltd.
 
Ad

Recently uploaded (20)

AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Ad

Vue.JS Hello World

Editor's Notes

  • #3: Hello & Welcome Fire & Safety Running through the Agenda
  • #4: 3 key differentiators in the Manchester market: Building a new team from scratch – this transformation started last year and already formed 3 new teams. We believe we are investing in the latest tech and tonight hopefully demonstrates this. And finally, we aspire to save households money (over 2 billion last year). If truth be told, finding good people with VueJS experience in the North West doesn't exist. So, we went out to Market to find the best front-end Developers we could and we had frank conversation around MSM using VueJS. Safe to say we didn’t do too bad.   As a result, we asked ourselves the question how do we help support the growth of this tech in the Manchester community. The answer was obvious. We wanted to set up a view meetup but also promote our tech and business to share some of the great stuff we are doing.   On behalf of the MoneySuperMarket Team (you will notice the people with the lanyards) we hope you enjoy the complimentary drinks and snacks but more importantly the main event which I will now handover to Emanuell to take you through our demo.
  • #5: How many of you have used VueJS?
  • #6: Unfortunately, this is the state of the Front End and is not looking like it’s going to get any easier. Choosing a new framework can be daunting with so many options there. For this reason, many either prefer to stick with jQuery or pick other libraries or frameworks they are familiar with. However, going with what you know doesn’t guarantee performance, scalability, maintainability and progression and innovation.
  • #7: CMS re-platforming over the course of the last 3 years with AngularJS as framework of choice. Some AngularJS implementations were problematic and needed a re-write. Thankfully, we knew we did not want to go with AngularJS so we have excluded one big player straight from the start
  • #8: Main focus is on the mobile journey. But there’s still a lot going on between ReactJS and VueJS and thus, we chose to dive in and spike them out separately instead of going with the public’s pick. VueJS almost acts as a bridge between AngularJS and ReactJS, picking concepts from both technologies while looking to simplify them. Thus, getting a Developer to move from Angular or React to Vue will be much simpler than going from Angular to React or vice versa. Empowered and trusted to spike these given more than hours or days but weeks.
  • #9: Reasons behind this in the next slide.
  • #10: Virtual DOM updates everything in memory which is a way quicker process. Coming from an AngularJS background it was VERY fast to get started with and to start building something meaningful with. Single File Components that aren’t JSX, really clean code. React’s license was initially problematic for us (not the case any more) Highly performant (considered faster than React) especially when coupling it with PWA technique
  • #11: There are some challenges: - VueJS not as popular yet as React - Difficulties in finding resources out there - May have to innovate - Not for too long though VueJS is getting traction. More and more developers switching to it from various other libraries.
  • #13: HTML template at the top with the VueJS instance at the bottom and the result rendered on the right hand side. VueJS acts as the middle man (stores the template in the memory and does the necessary work to convert it into what is eventually rendered).
  • #15: Similarly, you can call functions using string interpolation. However, to access properties from your data object, you would have to use ”this”.
  • #17: A directive can be described as an instruction which takes an argument and a property, in our case ”href” and “link”. NOTE: You cannot use string interpolation inside HTML attributes but only in-between HTML tags where you would usually have regular text.
  • #19: Another example of a directive is “v-on” which again takes an argument and a property. On click, this triggers the “updateCounter” function which increments the ”counter” property by 1. Should you want to, you can pass your own argument, say “2” and chose to increment by that instead. Moreover, you can also listen to keyboard events as well.
  • #21: Simple JavaScript statements can be executed in the HTML template.
  • #23: ”v-model” listens to changes and updates them accordingly in the instance and reflects that change in all places where the property is used.
  • #25: Methods behave differently than computed properties. In the above example, the “result” function will get triggered on each button click as it is not aware whether or not the “counter” and “secondCounter” properties are dependent to its calculations. Computed properties are smart enough to first analyse the code and then trigger it should the result be dependent on the action. NOTE: computed properties only run synchronously.
  • #27: Storing this into a new variable “vm” so we can access it in the callback function.
  • #29: “v-if” completely attaches and detaches elements from the DOM. “v-if” will also attach nested elements or detach them accordingly. An alternative would be using “v-show” and/or “v-hide” which keeps the elements rendered on the pages but hides them using CSS (e.g. “display: none”).
  • #34: It it possible to have multiple instance. It’s also possible to access one another from outside.
  • #36: A component takes a selector and an object. A component extends the Vue instance. Thus, in a component you want to have your ”data” as a function rather than an object not to interfere with the ”data” from your instance. Components are reusable, instances are not.
  • #38: Communication between child and parent can happen through an event bus which emits an event from the ”Child” that the “Parent” listens to and picks it up.
  • #41: Routing features: - Modes: hash vs history - Child routes - Transitions - Guards
  • #45: Benefits: not having to go through React’s hooks not having a complex setup with controllers etc (Angular) easy to get started with vue-cli
  • #48: Topics for next meetups: VueJS Amsterdam Unit Testing with Jest Validation with VeeValidate CSS with Vue Possibly Routing and Vuex Guest speakers