SlideShare a Scribd company logo
1 / 48
Introduction - by Examples
Vue.JS
Eueung Mulyana
https://eueung.github.io/112016/vuejs
CodeLabs | Attribution-ShareAlike CC BY-SA
Vue.JS Version: 2.1.6
Vue Material Version: 0.5.1
2 / 48
Outline
Introduction
Basic Examples
vue-cli
Vue Components
3 / 48
Introduction
4 / 48
5 / 48
Vue is a progressive framework for building user interfaces.
Unlike other monolithic frameworks, Vue is designed from
the ground up to be incrementally adoptable.
The core library is focused on the view layer only, and is very easy to pick up and
integrate with other libraries or existing projects. On the other hand, Vue is also
perfectly capable of powering sophisticated Single-Page Applications when used in
combination with modern tooling and supporting libraries.
Ref: Vue.JS - Guide
Vue.JS
6 / 48
Vue & React
They share many similarities:
utilize a virtual DOM
provide reactive and composable view components
maintain focus in the core library, with concerns such as routing and global
state management handled by companion libraries
In React, everything is Just JavaScript, which sounds very
simple and elegant - until you dig deeper. The unfortunate
reality is that reinventing HTML and CSS within JavaScript,
while solving some issues of the traditional model, can also
cause pain of its own. Vue, instead, utilizes web technologies
and build on top of them. Ref: Comparison.
Deja Vue?
Vue has many features that are clearly
inspired by other frameworks. This is a
good thing; it's great to see new
frameworks take some ideas from other
libraries and improve on them.
In particular, you'll see Vue's templating
is very close to Angular, but its
components and component lifecycle
methods are closer to React.
Ref: jfranklin @SitePoint
Basic Examples
7 / 48
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="utf-8">
<title>Vue.JS</title>
<linkrel="stylesheet"href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"
<linkrel="stylesheet"href="//fonts.googleapis.com/icon?family=Material+Icons">
<linkrel="stylesheet"href="//unpkg.com/vue-material@latest/dist/vue-material.css">
<style>.main-content{padding:16px;}.red{color:red;}</style>
</head>
<body>
<divid="app">
<md-toolbar><h1class="md-title">LearningVue.JS</h1></md-toolbar>
<divclass="main-content">
<h1>{{message1}}</h1><h3class="red">v-on:click</h3>
<md-buttonclass="md-raisedmd-primary"v-on:click="reverseMessage">Reverse</md-button>
<h3class="red">v-bind:title</h3><pv-bind:title="message2">123123123123123</p>
<h3class="red">v-if</h3><pv-if="seen">v-ifshow-hide:Nowyouseeme</p>
<h3class="red">v-for</h3>
<ol><liv-for="todointodos">{{todo.text}}</li></ol>
<h1>{{message3}}</h1><h3class="red">v-model</h3>
<md-input-container>
<label>EnterMessage</label>
<md-inputv-model="message3"></md-input>
</md-input-container>
<h3class="red">Component</h3>
<ol>
<todo-itemv-for="itemingroceryList"v-bind:todo="item"></todo-item>
</ol>
</div></div>
<scriptsrc="//unpkg.com/vue/dist/vue.js"></script>
<scriptsrc="//unpkg.com/vue-material@latest"></script>
8 / 48
Example #1
9 / 48
Example #1
10 / 48
Example #1
11 / 48
Example #1
Interaction via Console
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="utf-8">
<title>Vue.JS</title>
<linkrel="stylesheet"href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"
<linkrel="stylesheet"href="//fonts.googleapis.com/icon?family=Material+Icons">
<linkrel="stylesheet"href="//unpkg.com/vue-material@latest/dist/vue-material.css">
<style>
.main-content{padding:16px;}.red{color:red;}
ul{padding-left:0;}
li{list-style:none;line-height:40px;}
.md-button{margin-left:0;}
</style>
</head>
<body>
<divid="app">
<md-toolbar><h1class="md-title">LearningVue.JS</h1></md-toolbar>
<divclass="main-content">
<md-input-container>
<label>EnterTodo</label>
<md-inputv-model="newTodo"></md-input>
</md-input-container>
<md-buttonclass="md-raisedmd-primary"v-on:click="addTodo">AddTodo</md-button>
<ul>
<liv-for="(todo,index)intodos">
<md-buttonclass="md-icon-buttonmd-warn"v-on:click="removeTodo(index)"><md-icon>remove_circle_outline
{{todo.text}}
</li>
</ul>
</div></div>
<scriptsrc="//unpkg.com/vue/dist/vue.js"></script>
<scriptsrc="//unpkg.com/vue-material@latest"></script>
<scripttype="text/javascript">
Vue.use(VueMaterial)
12 / 48
Example #2a
Example #2a
13 / 48
<head>
<metacharset="utf-8">
<title>Vue.JS</title>
<linkrel="stylesheet"href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"
<linkrel="stylesheet"href="//fonts.googleapis.com/icon?family=Material+Icons">
<linkrel="stylesheet"href="//unpkg.com/vue-material@latest/dist/vue-material.css">
<style>
.main-content{padding:16px;}.red{color:red;}
ul{padding-left:0;}
li{list-style:none;line-height:40px;}
.md-button{margin-left:0;}
</style>
</head>
<body>
<divid="app">
<md-toolbar><h1class="md-title">LearningVue.JS</h1></md-toolbar>
<divclass="main-content">
<md-input-container>
<label>EnterTodo</label>
<md-inputv-model="newTodoText"placeholder="Addatodo"></md-input>
</md-input-container>
<md-buttonclass="md-raisedmd-primary"v-on:click="addNewTodo">AddTodo</md-button>
<ul>
<li
is="todo-item"
v-for="(todo,index)intodos"
v-bind:title="todo"
v-on:remove="todos.splice(index,1)">
</li>
</ul>
</div></div>
<scriptsrc="//unpkg.com/vue/dist/vue.js"></script>
<scriptsrc="//unpkg.com/vue-material@latest"></script>
<scripttype="text/javascript">
Vue.use(VueMaterial)
14 / 48
Example #2b
Vue Component
Event
Example #2b
15 / 48
vue-cli
16 / 48
17 / 48
Install & Scaffold
$sudonpminstall-gvue-cli
$vueinitwebpack-simplemyproj
ThiswillinstallVue2.xversionoftemplate.
ForVue1.xuse:vueinitwebpack-simple#1.0myproj
?Projectnamemyproj
?ProjectdescriptionAVue.jsproject
?AuthorEM
vue-cli.Generated"myproj".
Togetstarted:
cdmyproj
npminstall
npmrundev
myproj$tree
.
|--index.html
|--package.json
|--README.md
|--src
| |--App.vue
| |--assets
| | |--logo.png
| |--main.js
|--webpack.config.js
2directories,7files
18 / 48
package.json
myproj$catpackage.json
{
"name":"myproj",
"description":"AVue.jsproject",
"version":"1.0.0",
"author":"EM",
"private":true,
"scripts":{
"dev":"cross-envNODE_ENV=developmentwebpack-dev-server--open--inline--hot
"build":"cross-envNODE_ENV=productionwebpack--progress--hide-modules"
},
"dependencies":{
"vue":"^2.1.0"
},
"devDependencies":{
"babel-core":"^6.0.0",
"babel-loader":"^6.0.0",
"babel-preset-es2015":"^6.0.0",
"cross-env":"^3.0.0",
"css-loader":"^0.25.0",
"file-loader":"^0.9.0",
"vue-loader":"^10.0.0",
"vue-template-compiler":"^2.1.0",
"webpack":"^2.1.0-beta.25",
"webpack-dev-server":"^2.1.0-beta.9"
}
}
19 / 48
Install & Run
myproj$npminstall
myproj$npmrundev
>myproj@1.0.0dev/home/em/vuedir/myproj
>cross-envNODE_ENV=developmentwebpack-dev-server--open--inline--hot--host0.0
Projectisrunningathttp://0.0.0.0:8080/
webpackoutputisservedfrom/dist/
404swillfallbackto/index.html
myproj$npmrunbuild
vue init webpack-simple 20 / 48
<htmllang="en">
<head>
<metacharset="utf-8">
<title>myproj</title>
</head>
<body>
<divid="app"></div>
<scriptsrc="/dist/build.js"></script>
</body>
</html>
#App.vue
<template>
<divid="app">
<imgsrc="./assets/logo.png">
<h1>{{msg}}</h1>
<h2>EssentialLinks</h2>
<ul>
<li><ahref="https://vuejs.org"target="_blank">CoreDocs</a></li>
<li>...</li>
</ul>
<h2>Ecosystem</h2>
<ul>
<li><ahref="http://router.vuejs.org/"target="_blank">vue-router</a></li>
<li>...</li>
</ul>
</div>
</template>
<script>
exportdefault{
name:'app',
data(){
return{
msg:'WelcometoYourVue.jsApp'
}
}
}
</script>
<style>
#app{
font-family:'Avenir',Helvetica,Arial,sans-serif; 21 / 48
webpack-
simple
index.html
App.vue
main.js
22 / 48
Example #2a
Recycled
$npminstall
$npminstall--savevue-material
$tree
.
|--dist
| |--build.js
|--index.html
|--package.json
|--README.md
|--src
| |--App.vue
| |--css
| | |--app.css
| |--main.js
|--webpack.config.js
$npmrunbuild
$npmrundev
23 / 48
package.json
webpack.config.js
$catpackage.json
{
...
"dependencies":{
"vue":"^2.1.0",
"vue-material":"^0.5.1"
},
...
}
$catwebpack.config.js
module:{
rules:[
...
{
test:/.css$/,
loader:'vue-style-loader!css-loader'
},
...
],
}
...
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="utf-8">
<linkrel="stylesheet"href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"
<linkrel="stylesheet"href="//fonts.googleapis.com/icon?family=Material+Icons">
<title>myproj</title>
</head>
<body>
<divid="app"></div>
<scriptsrc="/dist/build.js"></script>
</body>
</html>
#-------------------
.main-content{padding:16px;}.red{color:red;}
ul{padding-left:0;}
li{list-style:none;line-height:40px;}
.md-button{margin-left:0;}
24 / 48
Example #2a
index.html
src/css/app.css
importVuefrom'vue'
importAppfrom'./App.vue'
importVueMaterialfrom'vue-material'
import'vue-material/dist/vue-material.css'
import'./css/app.css'
Vue.use(VueMaterial)
newVue({
el:'#app',
render:h=>h(App)
})
/*---------------------------*/
<template>
<divid="app">
<md-toolbar><h1class="md-title">LearningVue.JS</h1></md-toolbar>
<divclass="main-content">
<md-input-container>
<label>EnterTodo</label>
<md-inputv-model="newTodo"></md-input>
</md-input-container>
<md-buttonclass="md-raisedmd-primary"v-on:click="addTodo">AddTodo</md-button>
<ul>
<liv-for="(todo,index)intodos">
<md-buttonclass="md-icon-buttonmd-warn"v-on:click="removeTodo(index)"><md-icon>remove_circle_outline</md-icon></md-button>
{{todo.text}}
</li>
</ul>
</div></div>
</template>
<script>
exportdefault{
name:'app',
data(){
return{
newTodo:'',
todos:[{text:'Addsometodos'}]
}
25 / 48
Example #2a
main.js
src/App.vue
Example #2a (webpack) 26 / 48
Vue Components
27 / 48
28 / 48
Example #3
Example #3a
Based on an Article @SitePoint by Jack Franklin
Components are re-organized to a single index.vue
Example #3b
Example #3a + Vue Material
29 / 48
Example #3a
Structure
$tree
.
|--build
| |--main.js
|--index.html
|--package.json
|--src
| |--App
| | |--index.vue
| |--bus.js
| |--GithubInput
| | |--index.vue
| |--GithubOutput
| | |--index.vue
| |--GithubUserData
| | |--index.vue
| |--main.js
|--webpack.config.js
6directories,10files
{
"name":"vue2-intro-code",
"version":"1.0.0",
"description":"",
"main":"index.js",
"scripts":{
"start":"live-server",
"build":"webpack--watch"
},
"keywords":[],
"author":"",
"license":"ISC",
"devDependencies":{
"babel-core":"6.18.2",
"babel-loader":"6.2.7",
"babel-preset-es2015":"6.18.0",
"css-loader":"0.25.0",
"live-server":"1.1.0",
"vue":"2.1.6",
"vue-loader":"10.0.0",
"vue-template-compiler":"^2.1.0",
"webpack":"1.13.3"
}
}
/*---------------------------*/
module.exports={
entry:'./src/main',
output:{
path:'./build',
filename:'main.js',
},
module:{
loaders:[
{
test:/.vue$/,
loader:'vue',
},
{
test:/.js$/,
loader:'babel',
exclude:/node_modules/, 30 / 48
Example #3a
package.json
webpack.con g.js
index.html
31 / 48
importVuefrom'vue'
importAppComponentfrom'./App/index.vue'
constvm=newVue({
el:'#app',
components:{
app:AppComponent,
},
render:h=>h('app'),
})
/*---------------------------*/
importVuefrom'vue'
constbus=newVue()
exportdefaultbus
Example #3a
src/main.js
src/bus.js
<template>
<div>
<p>EnteryourusernametogetsomeGithubstats!</p>
<github-input></github-input>
<github-output></github-output>
</div>
</template>
<script>
importGithubInputfrom'../GithubInput/index.vue'
importGithubOutputfrom'../GithubOutput/index.vue'
exportdefault{
name:'App',
components:{
'github-input':GithubInput,
'github-output':GithubOutput,
},
data(){
return{}
},
}
</script>
<stylescoped>
p{
color:red;
}
</style>
32 / 48
Example #3a
src/App/index.vue
<template>
<formv-on:submit.prevent="onSubmit">
<inputtype="text"v-model="username"placeholder="Enteragithubusernamehere"/>
<buttontype="submit">Go!</button>
</form>
</template>
<script>
importbusfrom'../bus'
exportdefault{
name:'GithubInput',
methods:{
onSubmit(event){
if(this.username&&this.username!==''){
bus.$emit('new-username',this.username)
}
}
},
data(){
return{
username:'',
}
}
}
</script>
33 / 48
Example #3a
src/GithubInput/index.vue
<template>
<div>
<pv-if="currentUsername==null">
EnterausernameabovetoseetheirGithubdata
</p>
<pv-else>
Belowaretheresultsfor{{currentUsername}}:
<github-user-data:data="githubData[currentUsername]"></github-user-data>
</p>
</div>
</template>
<script>
importbusfrom'../bus'
importVuefrom'vue'
importGithubUserDatafrom'../GithubUserData/index.vue'
exportdefault{
name:'GithubOutput',
components:{
'github-user-data':GithubUserData,
},
created(){
bus.$on('new-username',this.onUsernameChange)
},
destroyed(){
bus.$off('new-username',this.onUsernameChange)
},
methods:{
onUsernameChange(name){
this.currentUsername=name
this.fetchGithubData(name)
},
fetchGithubData(name){
if(this.githubData.hasOwnProperty(name))return
consturl=`https://api.github.com/users/${name}`
fetch(url).then(r=>r.json()).then(data=>{
Vue.set(this.githubData,name,data)
console.log(JSON.stringify(this.githubData))
})
}
}, 34 / 48
Example #3a
src/GithubOutput/index.vue
35 / 48
<template>
<divv-if="data">
<h4>{{data.name}}</h4>
<p>{{data.company}}</p>
<p>Numberofrepos:{{data.public_repos}}
</div>
</template>
<script>
exportdefault{
name:'GithubUserData',
props:['data'],
data(){
return{}
}
}
</script>
Example #3a
src/GithubUserData/index.vue
Example #3a 36 / 48
Example #3a 37 / 48
38 / 48
Example #3b
Structure
$tree
.
|--dist
| |--build.js
| |--build.js.map
|--index.html
|--package.json
|--src
| |--App
| | |--index.vue
| |--bus.js
| |--css
| | |--app.css
| |--GithubInput
| | |--index.vue
| |--GithubOutput
| | |--index.vue
| |--GithubUserData
| | |--index.vue
| |--main.js
|--webpack.config.js
7directories,12files
{
"name":"myproj",
"description":"AVue.jsproject",
"version":"1.0.0",
"author":"EM",
"private":true,
"scripts":{
"dev":"cross-envNODE_ENV=developmentwebpack-dev-server--open--inline--hot--host0.0.0.0"
"build":"cross-envNODE_ENV=productionwebpack--progress--hide-modules"
},
"dependencies":{
"vue":"^2.1.0",
"vue-material":"^0.5.1"
},
"devDependencies":{
"babel-core":"^6.0.0",
"babel-loader":"^6.0.0",
"babel-preset-es2015":"^6.0.0",
"cross-env":"^3.0.0",
"css-loader":"^0.25.0",
"file-loader":"^0.9.0",
"vue-loader":"^10.0.0",
"vue-template-compiler":"^2.1.0",
"webpack":"^2.1.0-beta.25",
"webpack-dev-server":"^2.1.0-beta.9"
}
}
39 / 48
Example #3b
package.json
varpath=require('path')
varwebpack=require('webpack')
module.exports={
entry:'./src/main.js',
output:{
path:path.resolve(__dirname,'./dist'),
publicPath:'/dist/',
filename:'build.js'
},
module:{
rules:[
{
test:/.vue$/,
loader:'vue-loader',
options:{
loaders:{
//Sincesass-loader(weirdly)hasSCSSasitsdefaultparsemode,wemap
//the"scss"and"sass"valuesforthelangattributetotherightconfigshere.
//otherpreprocessorsshouldworkoutofthebox,noloaderconfiglikethisnessessary.
'scss':'vue-style-loader!css-loader!sass-loader',
'sass':'vue-style-loader!css-loader!sass-loader?indentedSyntax'
}
//othervue-loaderoptionsgohere
}
},
{
test:/.css$/,
loader:'vue-style-loader!css-loader'
},
{
test:/.js$/,
loader:'babel-loader',
exclude:/node_modules/
},
{
test:/.(png|jpg|gif|svg)$/,
loader:'file-loader',
options:{
name:'[name].[ext]?[hash]'
}
40 / 48
Example #3b
webpack.con g.js
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="utf-8">
<linkrel="stylesheet"href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"
<linkrel="stylesheet"href="//fonts.googleapis.com/icon?family=Material+Icons">
<title>myproj</title>
</head>
<body>
<divid="app"></div>
<scriptsrc="/dist/build.js"></script>
</body>
</html>
/*---------------------------*/
importVuefrom'vue'
importAppComponentfrom'./App/index.vue'
importVueMaterialfrom'vue-material'
import'vue-material/dist/vue-material.css'
import'./css/app.css'
Vue.use(VueMaterial)
constvm=newVue({
el:'#app',
components:{
app:AppComponent,
},
render:h=>h('app'),
})
/*---------------------------*/
.main-content{padding:16px;}.red{color:red;}
ul{padding-left:0;}
li{list-style:none;line-height:40px;}
.md-button{margin-left:0;}
41 / 48
Example #3b
index.html
src/main.js
src/css/app.css
<template>
<divid="app">
<md-toolbar><h1class="md-title">LearningVue.JS</h1></md-toolbar>
<divclass="main-content">
<p>EnteryourusernametogetsomeGithubstats!</p>
<github-input></github-input>
<github-output></github-output>
</div></div>
</template>
<script>
importGithubInputfrom'../GithubInput/index.vue'
importGithubOutputfrom'../GithubOutput/index.vue'
exportdefault{
name:'App',
components:{
'github-input':GithubInput,
'github-output':GithubOutput,
},
data(){
return{}
},
}
</script>
<stylescoped>
p{
color:red;
}
</style>
42 / 48
Example #3b
src/App/index.vue
<template>
<div>
<md-input-container>
<label>GithubUser</label>
<md-inputv-model="username"placeholder="Enteragithubusernamehere"></md-input>
</md-input-container>
<md-buttonclass="md-raisedmd-primary"v-on:click="onSubmit">Go!</md-button>
</div>
</template>
<script>
importbusfrom'../bus'
exportdefault{
name:'GithubInput',
methods:{
onSubmit(event){
if(this.username&&this.username!==''){
bus.$emit('new-username',this.username)
}
}
},
data(){
return{
username:'',
}
}
}
</script>
43 / 48
Example #3b
src/GithubInput/index.vue
Example #3b 44 / 48
Example #3b 45 / 48
Refs
46 / 48
Refs
1. vuejs.org
2. vuejs/vue: Simple yet powerful library for building modern web interfaces.
3. Comparison with Other Frameworks - vue.js
4. Introduction - Vue Material
5. Getting up and Running with the Vue.js 2.0 Framework
6. jackfranklin/vue2-demo-proj
47 / 48
48 / 48
END
Eueung Mulyana
https://eueung.github.io/112016/vuejs
CodeLabs | Attribution-ShareAlike CC BY-SA
Ad

Recommended

Love at first Vue
Love at first Vue
Dalibor Gogic
 
Javascript MVVM with Vue.JS
Javascript MVVM with Vue.JS
Eueung Mulyana
 
Why Vue.js?
Why Vue.js?
Jonathan Goode
 
Vue 2.0 + Vuex Router & Vuex at Vue.js
Vue 2.0 + Vuex Router & Vuex at Vue.js
Takuya Tejima
 
Vue js 大型專案架構
Vue js 大型專案架構
Hina Chen
 
An introduction to Vue.js
An introduction to Vue.js
Javier Lafora Rey
 
Vue JS Intro
Vue JS Intro
Muhammad Rizki Rijal
 
The Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.js
Holly Schinsky
 
Vue.js is boring - and that's a good thing
Vue.js is boring - and that's a good thing
Joonas Lehtonen
 
Vuejs for Angular developers
Vuejs for Angular developers
Mikhail Kuznetcov
 
Vue.js
Vue.js
Jadson Santos
 
Vue.js Getting Started
Vue.js Getting Started
Murat Doğan
 
An Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock
 
Vue, vue router, vuex
Vue, vue router, vuex
Samundra khatri
 
Vuex
Vuex
Asaquzzaman Mishu
 
introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0
Takuya Tejima
 
Vuejs getting-started - Extended Version
Vuejs getting-started - Extended Version
Murat Doğan
 
VueJS: The Simple Revolution
VueJS: The Simple Revolution
Rafael Casuso Romate
 
Vue routing tutorial getting started with vue router
Vue routing tutorial getting started with vue router
Katy Slemon
 
Room with a Vue - Introduction to Vue.js
Room with a Vue - Introduction to Vue.js
Zachary Klein
 
VueJS Introduction
VueJS Introduction
David Ličen
 
Vue.js
Vue.js
BADR
 
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
Galih Pratama
 
Vue 淺談前端建置工具
Vue 淺談前端建置工具
andyyou
 
Vue business first
Vue business first
Vitalii Ratyshnyi
 
An introduction to Vue.js
An introduction to Vue.js
Pagepro
 
Building a Single Page Application with VueJS
Building a Single Page Application with VueJS
danpastori
 
Vue.js for beginners
Vue.js for beginners
Julio Bitencourt
 
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Toshiro Shimizu
 

More Related Content

What's hot (20)

Vue.js is boring - and that's a good thing
Vue.js is boring - and that's a good thing
Joonas Lehtonen
 
Vuejs for Angular developers
Vuejs for Angular developers
Mikhail Kuznetcov
 
Vue.js
Vue.js
Jadson Santos
 
Vue.js Getting Started
Vue.js Getting Started
Murat Doğan
 
An Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock
 
Vue, vue router, vuex
Vue, vue router, vuex
Samundra khatri
 
Vuex
Vuex
Asaquzzaman Mishu
 
introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0
Takuya Tejima
 
Vuejs getting-started - Extended Version
Vuejs getting-started - Extended Version
Murat Doğan
 
VueJS: The Simple Revolution
VueJS: The Simple Revolution
Rafael Casuso Romate
 
Vue routing tutorial getting started with vue router
Vue routing tutorial getting started with vue router
Katy Slemon
 
Room with a Vue - Introduction to Vue.js
Room with a Vue - Introduction to Vue.js
Zachary Klein
 
VueJS Introduction
VueJS Introduction
David Ličen
 
Vue.js
Vue.js
BADR
 
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
Galih Pratama
 
Vue 淺談前端建置工具
Vue 淺談前端建置工具
andyyou
 
Vue business first
Vue business first
Vitalii Ratyshnyi
 
An introduction to Vue.js
An introduction to Vue.js
Pagepro
 
Building a Single Page Application with VueJS
Building a Single Page Application with VueJS
danpastori
 
Vue.js is boring - and that's a good thing
Vue.js is boring - and that's a good thing
Joonas Lehtonen
 
Vuejs for Angular developers
Vuejs for Angular developers
Mikhail Kuznetcov
 
Vue.js Getting Started
Vue.js Getting Started
Murat Doğan
 
An Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock
 
introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0
Takuya Tejima
 
Vuejs getting-started - Extended Version
Vuejs getting-started - Extended Version
Murat Doğan
 
Vue routing tutorial getting started with vue router
Vue routing tutorial getting started with vue router
Katy Slemon
 
Room with a Vue - Introduction to Vue.js
Room with a Vue - Introduction to Vue.js
Zachary Klein
 
VueJS Introduction
VueJS Introduction
David Ličen
 
Vue.js
Vue.js
BADR
 
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
Galih Pratama
 
Vue 淺談前端建置工具
Vue 淺談前端建置工具
andyyou
 
An introduction to Vue.js
An introduction to Vue.js
Pagepro
 
Building a Single Page Application with VueJS
Building a Single Page Application with VueJS
danpastori
 

Viewers also liked (19)

Vue.js for beginners
Vue.js for beginners
Julio Bitencourt
 
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Toshiro Shimizu
 
Introduction, Examples - Firebase
Introduction, Examples - Firebase
Eueung Mulyana
 
Vue.js
Vue.js
ZongYing Lyu
 
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
pascallaliberte
 
Enjoy the vue.js
Enjoy the vue.js
TechExeter
 
Vue.js 2.0を試してみた
Vue.js 2.0を試してみた
Toshiro Shimizu
 
789 yazilim360egitimleri2014
789 yazilim360egitimleri2014
yunus yiğit
 
Membangun Moderen UI dengan Vue.js
Membangun Moderen UI dengan Vue.js
Froyo Framework
 
Vue.js
Vue.js
Luís Felipe Souza
 
Mobil Uygulamalar ve Geliştiriciler
Mobil Uygulamalar ve Geliştiriciler
merveyildiz1
 
從改寫後台 jQuery 開始的 Vue.js 宣告式渲染
從改寫後台 jQuery 開始的 Vue.js 宣告式渲染
Sheng-Han Su
 
Vue
Vue
國昭 張
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
José Barbosa
 
SÜRDÜRÜLEBİLİR HAZIR BETON ÜRETİMİNDE YÜKSEK FIRIN CÜRUFUNUN ROLÜ
SÜRDÜRÜLEBİLİR HAZIR BETON ÜRETİMİNDE YÜKSEK FIRIN CÜRUFUNUN ROLÜ
Yasin Engin
 
NodeMCU with Blynk and Firebase
NodeMCU with Blynk and Firebase
Eueung Mulyana
 
Vue.js入門
Vue.js入門
Takuya Sato
 
Türkiyede girişimcilik
Türkiyede girişimcilik
Bilal Peynirci
 
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
mobilike
 
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Toshiro Shimizu
 
Introduction, Examples - Firebase
Introduction, Examples - Firebase
Eueung Mulyana
 
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
Making Turbolinks work with Vue.js: Fast server-generated pages with reactive...
pascallaliberte
 
Enjoy the vue.js
Enjoy the vue.js
TechExeter
 
Vue.js 2.0を試してみた
Vue.js 2.0を試してみた
Toshiro Shimizu
 
789 yazilim360egitimleri2014
789 yazilim360egitimleri2014
yunus yiğit
 
Membangun Moderen UI dengan Vue.js
Membangun Moderen UI dengan Vue.js
Froyo Framework
 
Mobil Uygulamalar ve Geliştiriciler
Mobil Uygulamalar ve Geliştiriciler
merveyildiz1
 
從改寫後台 jQuery 開始的 Vue.js 宣告式渲染
從改寫後台 jQuery 開始的 Vue.js 宣告式渲染
Sheng-Han Su
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
José Barbosa
 
SÜRDÜRÜLEBİLİR HAZIR BETON ÜRETİMİNDE YÜKSEK FIRIN CÜRUFUNUN ROLÜ
SÜRDÜRÜLEBİLİR HAZIR BETON ÜRETİMİNDE YÜKSEK FIRIN CÜRUFUNUN ROLÜ
Yasin Engin
 
NodeMCU with Blynk and Firebase
NodeMCU with Blynk and Firebase
Eueung Mulyana
 
Türkiyede girişimcilik
Türkiyede girişimcilik
Bilal Peynirci
 
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
mobilike
 
Ad

Similar to Vue js and Vue Material (20)

Basics of Vue.js 2019
Basics of Vue.js 2019
Paul Bele
 
Introduction to Vue.js DevStaff Meetup 13.02
Introduction to Vue.js DevStaff Meetup 13.02
Paul Bele
 
Why Choose Vue.js For Web Development Projects.pptx
Why Choose Vue.js For Web Development Projects.pptx
Scala Code
 
Is Vue catching up with React.pdf
Is Vue catching up with React.pdf
Mindfire LLC
 
React vs. vue which framework to select and when
React vs. vue which framework to select and when
Moon Technolabs Pvt. Ltd.
 
Vue.js - An Introduction
Vue.js - An Introduction
saadulde
 
React vs. vue which framework to select and when
React vs. vue which framework to select and when
MoonTechnolabsPvtLtd
 
React vs Vue: Which One Is Best for Your Frontend Development?
React vs Vue: Which One Is Best for Your Frontend Development?
Brielle Aria
 
Vue Or React - Which One is the Best_.pptx
Vue Or React - Which One is the Best_.pptx
75waytechnologies
 
Vue vs React Comparison: A Comparative Study
Vue vs React Comparison: A Comparative Study
marcomatola1432
 
Intro to vue.js
Intro to vue.js
TechMagic
 
Intro to Vue
Intro to Vue
Isatu Conteh
 
VueJs Workshop
VueJs Workshop
Unfold UI
 
Getting Started with Vue.js
Getting Started with Vue.js
Felicia O'Garro
 
React vs Vue JS Explained | Vue JS vs React Which Is Better? | Vue JS for Beg...
React vs Vue JS Explained | Vue JS vs React Which Is Better? | Vue JS for Beg...
Simplilearn
 
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
 
Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
Lucas Jellema
 
What is Vue.js in Software Development.docx.pdf
What is Vue.js in Software Development.docx.pdf
MPIRIC Software
 
React Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdf
Laura Miller
 
Vue js 2.x
Vue js 2.x
Suresh Velusamy
 
Basics of Vue.js 2019
Basics of Vue.js 2019
Paul Bele
 
Introduction to Vue.js DevStaff Meetup 13.02
Introduction to Vue.js DevStaff Meetup 13.02
Paul Bele
 
Why Choose Vue.js For Web Development Projects.pptx
Why Choose Vue.js For Web Development Projects.pptx
Scala Code
 
Is Vue catching up with React.pdf
Is Vue catching up with React.pdf
Mindfire LLC
 
React vs. vue which framework to select and when
React vs. vue which framework to select and when
Moon Technolabs Pvt. Ltd.
 
Vue.js - An Introduction
Vue.js - An Introduction
saadulde
 
React vs. vue which framework to select and when
React vs. vue which framework to select and when
MoonTechnolabsPvtLtd
 
React vs Vue: Which One Is Best for Your Frontend Development?
React vs Vue: Which One Is Best for Your Frontend Development?
Brielle Aria
 
Vue Or React - Which One is the Best_.pptx
Vue Or React - Which One is the Best_.pptx
75waytechnologies
 
Vue vs React Comparison: A Comparative Study
Vue vs React Comparison: A Comparative Study
marcomatola1432
 
Intro to vue.js
Intro to vue.js
TechMagic
 
VueJs Workshop
VueJs Workshop
Unfold UI
 
Getting Started with Vue.js
Getting Started with Vue.js
Felicia O'Garro
 
React vs Vue JS Explained | Vue JS vs React Which Is Better? | Vue JS for Beg...
React vs Vue JS Explained | Vue JS vs React Which Is Better? | Vue JS for Beg...
Simplilearn
 
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
 
Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
Lucas Jellema
 
What is Vue.js in Software Development.docx.pdf
What is Vue.js in Software Development.docx.pdf
MPIRIC Software
 
React Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdf
Laura Miller
 
Ad

More from Eueung Mulyana (20)

FGD Big Data
FGD Big Data
Eueung Mulyana
 
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Eueung Mulyana
 
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Eueung Mulyana
 
Blockchain Introduction
Blockchain Introduction
Eueung Mulyana
 
Bringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based Approach
Eueung Mulyana
 
FinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency Introduction
Eueung Mulyana
 
Open Source Networking Overview
Open Source Networking Overview
Eueung Mulyana
 
ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments
Eueung Mulyana
 
Open stack pike-devstack-tutorial
Open stack pike-devstack-tutorial
Eueung Mulyana
 
Basic onos-tutorial
Basic onos-tutorial
Eueung Mulyana
 
ONOS SDN Controller - Introduction
ONOS SDN Controller - Introduction
Eueung Mulyana
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - Introduction
Eueung Mulyana
 
Mininet Basics
Mininet Basics
Eueung Mulyana
 
Android Programming Basics
Android Programming Basics
Eueung Mulyana
 
Cloud Computing: Overview and Examples
Cloud Computing: Overview and Examples
Eueung Mulyana
 
selected input/output - sensors and actuators
selected input/output - sensors and actuators
Eueung Mulyana
 
Connected Things, IoT and 5G
Connected Things, IoT and 5G
Eueung Mulyana
 
Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+
Eueung Mulyana
 
Trends and Enablers - Connected Services and Cloud Computing
Trends and Enablers - Connected Services and Cloud Computing
Eueung Mulyana
 
Digital Ecosystems - Connected Services and Cloud Computing
Digital Ecosystems - Connected Services and Cloud Computing
Eueung Mulyana
 
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Eueung Mulyana
 
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Eueung Mulyana
 
Blockchain Introduction
Blockchain Introduction
Eueung Mulyana
 
Bringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based Approach
Eueung Mulyana
 
FinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency Introduction
Eueung Mulyana
 
Open Source Networking Overview
Open Source Networking Overview
Eueung Mulyana
 
ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments
Eueung Mulyana
 
Open stack pike-devstack-tutorial
Open stack pike-devstack-tutorial
Eueung Mulyana
 
ONOS SDN Controller - Introduction
ONOS SDN Controller - Introduction
Eueung Mulyana
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - Introduction
Eueung Mulyana
 
Android Programming Basics
Android Programming Basics
Eueung Mulyana
 
Cloud Computing: Overview and Examples
Cloud Computing: Overview and Examples
Eueung Mulyana
 
selected input/output - sensors and actuators
selected input/output - sensors and actuators
Eueung Mulyana
 
Connected Things, IoT and 5G
Connected Things, IoT and 5G
Eueung Mulyana
 
Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+
Eueung Mulyana
 
Trends and Enablers - Connected Services and Cloud Computing
Trends and Enablers - Connected Services and Cloud Computing
Eueung Mulyana
 
Digital Ecosystems - Connected Services and Cloud Computing
Digital Ecosystems - Connected Services and Cloud Computing
Eueung Mulyana
 

Recently uploaded (20)

"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
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
"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
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 

Vue js and Vue Material