JavaScriptフレームワークの「Vue.js」を使ってToDoリストを実装してみよう(前編)
今回は、JavaScriptフレームワークの「Vue.js」を用いて、簡単なToDoリストを2回に分けて実装していきます。
HTMLファイルにVue.jsを読み込ませるだけで導入が可能ですので、実際にコードを書いてみて感覚をつかんでいただけたらと思います。
前編では導入方法からリストの作成、追加までを解説していきます。
Vue.jsとは?
Vue.jsとは、簡単かつ感覚的に実装可能なJavascriptフレームワークのひとつです。
Vue.jsのメリット
- 双方向データバインディングに重点を置いているため、シンプルでわかりやすい
- 学習コストが低い
- 他のフレームワークと組み合わせて使いやすい
他のフレームワークとの比較
他の有名なJavascriptフレームワークとの比較について公式ドキュメントにて紹介されています。
では、基本構造から、実際にVue.jsを使ってみます。
【1】Vue.jsを導入する
index.htmlに以下のコードを記述することで導入完了です。
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
【2】データを表示してみる
index.htmlに{{ データの名前 }}と記述します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>ToDo List</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
{{ message }}
</div>
<script src="contents.js"></script>
</body>
</html>
contents.jsにVueのインスタンスを作成します。
var app = new Vue({
el: '#app',
data: {
message: 'vue.jsでtodoリストを実装してみよう',
},
});
以上でindex.htmlにアクセスすれば「vue.jsでtodoリストを実装してみよう」と表示されます。
【3】入力内容を表示してみる
Vue.jsのフォーム入力バインディングを用いて、入力内容を表示してみます。
<div id="app">
<input type="text" v-model="message"><br>
{{ message }}
</div>
var app = new Vue({
el: '#app',
data: {
message: '',
},
});
以上でフォームに入力された文字が表示されます。
【4】配列をループで表示してみる
ulタグにv-forディレクティブを用いてlist配列の内容を表示してみます。
<div id="app">
<ul v-for="(todo,index) in list">
<li>{{ index + 1 }}:{{ todo.text }}</li>
</ul>
</div>
var app = new Vue({
el: '#app',
data: {
list:[
{text: 'Vue.jsを導入する'},
{text: 'データを表示してみる'},
{text: '入力内容を表示してみる'},
{text: '配列を表示してみる'},
{text: '配列にデータを追加する'},
],
},
});
以上でlist配列のtextがすべて表示されます。
【5】配列にデータを追加してみる
buttonにv-onディレクティブを用いてaddToDoメソッドを実行します。
<div id="app">
<input type="text" v-model="addText" placeholder="ToDoを入力">
<button v-on:click="addToDo()">追加</button><hr>
<ul v-for="(todo,index) in list">
<li>{{ index + 1 }}:{{ todo.text }}</li>
</ul>
</div>
var app = new Vue({
el: '#app',
data: {
addText: '',
list:[],
},
methods: {
addToDo() {
this.list.push({
text: this.addText
});
this.addText = ''; //入力値初期化
}
}
});
さらに、addTextが空欄の場合、追加を実行しないようにしたいと思います。
var app = new Vue({
el: '#app',
data: {
addText: '',
list:[],
},
methods: {
addToDo() {
if (this.addText) {
this.list.push({
text: this.addText
});
}
this.addText = ''; //入力値初期化
}
}
});
以上でフォームに入力した値が、ボタン押下でリストに追加されるようになりました。
さいごに
いかがでしたでしょうか。
次回はタスクの更新削除やタスクの完了機能を追加し、ToDoリストをより便利にしていきたいと思います。
Vue.jsの詳しい使い方は、公式ドキュメントにて解説されています。
この記事を書いた人
-
東京で2年半エンジニアとしての経験を積み、浜松にUターンの後、アーティスへ入社。
ソリューション事業部のWebエンジニアとして、システムの設計・開発・保守・運用からインフラまで幅広く従事している。
フルスタックエンジニア目指して現在も勉強の日々。車が好き。
この執筆者の最新記事
関連記事
最新記事
FOLLOW US
最新の情報をお届けします
- facebookでフォロー
- Twitterでフォロー
- Feedlyでフォロー