SlideShare a Scribd company logo
1 of 32
Download to read offline
Vue.jsでさくっとMVVM
2014.12.05
@gorou_178
自己紹介
穴井 怜
株式会社イノベーター・ジャパン
福岡オフィス Webエンジニア
!
@gorou_178
!
C++ → Java →
Objective-C → PHP(今ここ)
Vue.jsとは?
– vuejs.org
“10 Second Example”
View
HTMLがそのままテンプレート
<div id=“demo"> 

<p>{{message}}</p> 

<input type="text" v-model=“message"/> 

</div>
<div id=“demo"> 

<p>{{message}}</p> 

<input type="text" v-model=“message"/> 

</div>
モデルとinputを
関連付け
<div id=“demo"> 

<p>{{message}}</p> 

<input type="text" v-model=“message"/> 

</div>
モデルとinputを
関連付け
モデルの内容
を表示
Model
&
ViewModel
var demo = new Vue({ 

el: ‘#demo', 

data: { 

message: 'Hellow World’ 

} 

});
var demo = new Vue({ 

el: ‘#demo', 

data: { 

message: 'Hellow World’ 

} 

});
elにビュー
を定義
var demo = new Vue({ 

el: ‘#demo', 

data: { 

message: 'Hellow World’ 

} 

});
elにビュー
を定義
dataにモデ
ルを定義
Demo
とっても簡単
Vue.jsとは
• MVVMパターン
• 依存ライブラリなし
• モダンブラウザ(IE9以降)のみサポート
• そのため軽量(17kb min+gzip)
Vue.jsの使い方
1. ディレクティブ
2. イベント
3. WebComponent
Vue.jsの使い方
1. ディレクティブ
2. イベント
3. WebComponent
ディレクティブ
• v-repeat: 繰り返し処理
!
!
• v-on: イベント処理
<li v-repeat=“todos"> 

{{taskName}} 

</li>
<li v-repeat="todos" v-on="click: done”>
ディレクティブ
• filterBy: 文字列を検索してヒットしたものだけ表示
!
!
• keyフィルタ: 指定キーコードのみ受け付ける
<input type="text" v-model=“task"
v-on="keyup:addTodo | key enter" >
<input v-model=“searchKey"> 

<ul> 

<li v-repeat="todos | filterBy searchKey”>        
{{taskName}}</li> 

</ul>
ディレクティブ
• orderBy: 並び替え
<li v-repeat="todos | orderBy ‘id'">{{taskName}}</li>
<li v-repeat="todos | orderBy ‘id' -1“>{{taskName}}</li>
Vue.jsの使い方
1. ディレクティブ
2. イベント
3. WebComponent
イベント
• $on(event名, callback): イベントを受け付ける
• $emit(event名, [args…]): イベントを発生させる
• $watch(モデル名, callback): 値の変化を監視
!
todoApp.$watch('todos', function(value, mutation){ 

console.log(value); 



});
Vue.jsの使い方
1. ディレクティブ
2. イベント
3. WebComponent
WebComponent
var MyComponent = Vue.extend({ 

template: 'A custom component!’ 

}); 

Vue.component('my-component', MyComponent);
WebComponent
<div v-component="my-component"></div>

or 

<my-component></my-component>
まとめ
• 簡単に双方向バインディング
• さくっと始められる(学習コスト低め)
• コンポーネント化しやすい
弊社
イノベーター・ジャパン福岡オフィス
絶賛エンジニア募集中!
Webサービス
作りたい方大歓迎です
ありがとうございました

More Related Content

What's hot

ライオンでも分かるVuejs
ライオンでも分かるVuejsライオンでも分かるVuejs
ライオンでも分かるVuejs
lion-man
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
 
今からでも遅くない! React事始め
今からでも遅くない! React事始め今からでも遅くない! React事始め
今からでも遅くない! React事始め
ynaruta
 

What's hot (20)

ライオンでも分かるVuejs
ライオンでも分かるVuejsライオンでも分かるVuejs
ライオンでも分かるVuejs
 
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
 
プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話
 
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙いKnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
KnockoutJS勉強会 プロジェクトにmvvmを適用する狙い
 
Angular js はまりどころ
Angular js はまりどころAngular js はまりどころ
Angular js はまりどころ
 
DevLOVE Kansai KnockoutJS
DevLOVE Kansai KnockoutJSDevLOVE Kansai KnockoutJS
DevLOVE Kansai KnockoutJS
 
Ma gician <Vue にはできないこと (1)> WeJS 37th
Ma gician <Vue にはできないこと (1)> WeJS 37th Ma gician <Vue にはできないこと (1)> WeJS 37th
Ma gician <Vue にはできないこと (1)> WeJS 37th
 
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
React.js + Flux
React.js + FluxReact.js + Flux
React.js + Flux
 
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
 
Start React with Browserify
Start React with BrowserifyStart React with Browserify
Start React with Browserify
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
 
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancement
 
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
 
Angular.jsについてちょっとしゃべる
Angular.jsについてちょっとしゃべるAngular.jsについてちょっとしゃべる
Angular.jsについてちょっとしゃべる
 
今からでも遅くない! React事始め
今からでも遅くない! React事始め今からでも遅くない! React事始め
今からでも遅くない! React事始め
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
 
AngularJS入門
AngularJS入門AngularJS入門
AngularJS入門
 

Viewers also liked

Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
 

Viewers also liked (9)

Reactつかってみた
ReactつかってみたReactつかってみた
Reactつかってみた
 
React.js + Flux入門 #scripty02
React.js + Flux入門 #scripty02React.js + Flux入門 #scripty02
React.js + Flux入門 #scripty02
 
Vue.js 2.0を試してみた
Vue.js 2.0を試してみたVue.js 2.0を試してみた
Vue.js 2.0を試してみた
 
Flowtype Introduction
Flowtype IntroductionFlowtype Introduction
Flowtype Introduction
 
Vue.js for HIKARABO
Vue.js for HIKARABOVue.js for HIKARABO
Vue.js for HIKARABO
 
Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetup
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
 
Vue 2.0 + Vuex Router & Vuex at Vue.js
Vue 2.0 + Vuex Router & Vuex at Vue.jsVue 2.0 + Vuex Router & Vuex at Vue.js
Vue 2.0 + Vuex Router & Vuex at Vue.js
 

Similar to Vue.jsでさくっとMVVM

13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
 

Similar to Vue.jsでさくっとMVVM (20)

ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
 
Vue入門
Vue入門Vue入門
Vue入門
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.js
 
20200304 vuejs
20200304 vuejs20200304 vuejs
20200304 vuejs
 
ASP.NET MVCとEntity Frameworkで作ってみた
ASP.NET MVCとEntity Frameworkで作ってみたASP.NET MVCとEntity Frameworkで作ってみた
ASP.NET MVCとEntity Frameworkで作ってみた
 
Mvpvm pattern
Mvpvm patternMvpvm pattern
Mvpvm pattern
 
Xamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツXamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツ
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
 
ftechmeetup_データバインディングはどう実装されているのか
ftechmeetup_データバインディングはどう実装されているのかftechmeetup_データバインディングはどう実装されているのか
ftechmeetup_データバインディングはどう実装されているのか
 
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールPyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
 
初めてのvue.js(2.x系)
初めてのvue.js(2.x系)初めてのvue.js(2.x系)
初めてのvue.js(2.x系)
 
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm patternRIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
 
Vue.js で XSS
Vue.js で XSSVue.js で XSS
Vue.js で XSS
 
ASP.NET MVC 1.0
ASP.NET MVC 1.0ASP.NET MVC 1.0
ASP.NET MVC 1.0
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
 
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップEWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
 

Vue.jsでさくっとMVVM