はじめてのVue.js
DevLOVE関西「JavaScriptフレームワークは
AngularJSだけじゃない」
2015.01.26
自己紹介
• かみやん (Twitter@kamiyam)

http://nantokaworks.com
• Engineer
• JavaScript、Node.jsでお仕事をしている人
• カメラ/自動車
v0.11.4 (※ 15.1.26現在)
まず最初にみなさんに
お伝えしなければならないことが
あります。
_ 人人人人人人人人人人人 _
> Vue.js は IE8 非対応 <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
それでも
ついてこられる皆さん()に
一言で表すなら
軽量版 Angular.js
Vue.js から入って
Angular.js に行った人
Angular.js
app.controller("demoCtrl", [
"$scope", "$timeout", "$modal", "socketer", "authenticationSvc",
"chatRoom", function($scope, $timeout, $modal, socketer,
authenticationSvc, chatRoom) {
$scope.***
$scope.***
}]);
$scopeにいろいろくっつけていくやつ
Vue.js
var app = new Vue({
el: "#demo",
data: {
message: "Hello World"
},
methods: {
method: function(){/* 処理 */}
},
ready: function(){}
});
Vue.js
var app = new Vue({
el: “#demo", //バインド対象のElements
data: { //ビューモデルが保持するData
message: "Hello World"
},
methods: { //ビュー側で使用する関数など
method: function(){/* 処理 */}
},
ready: function(){ //初期化処理
}
});
DEMO
Vue.js これだけやっておけば
とりあえず大丈夫
DEMO
・{{}} / v-text / v-html
・v-model
・v-on
・v-repeat
・v-show
{{}} / v-text / v-html
var app = new Vue({
data: {
hello: “<h1>Hello World</h1>"
}
});
<p>{{hello}}</p>
<p v-text="hello"></p>
<p v-html="hello"></p>
v-model
var app = new Vue({
data: {
message: "Hello World"
}
});
<p>message</p>
<input v-model="message" />
v-on
var app = new Vue({
methods: {
hogeMethod: function(e){},
fugaMethod: function(e){},
}
});
<button v-on="click: hogeMethod, keyup : fugaMethod “>
Hey
</button>
v-repeat
var app = new Vue({
data: {
users: [
{name: “hoge”, id:1002394},
{name: “fuga”, id:1001784}]
}
});
<ul>
<li v-repeat="user : users">{{user.name}}</li>
</ul>
v-show
var app = new Vue({
data: {
isDone: false
}
});
<p v-show=“!isDone">
Task A
<p>
Vue.js を使う理由
Angular.js <=> Vue.js
(他に比べると)移行しやすい
アトリビュート
'ng-**' <=> 'v-**' で読み替える
app.controller("chatCtrl", [
"$scope", "$timeout", "$modal", "socketer", "authenticationSvc",
"chatRoom", function($scope, $timeout, $modal, socketer,
authenticationSvc, chatRoom) {
$scope.data = {
room: chatRoom.getInfo(),
lists: []
};
$scope.state = {
isTitleView: false
};
$scope.fn.information = function() {};
}
]);
参考
Vue.js
・マイクロサービス / スマートフォン
・MVほにゃららの入門としてよさげ
・機能が少ない(絞られているので)

ググらビリティ高い
Vue.js
ソースを見てフィーリングをつかむ
http://todomvc.com/
■ TodoMVC
ご清聴ありがとうございました

はじめてのVue.js