はじめに
Vue.js
に少し触れてみたので、その内容を「Vue.js入門」として、数回にわけて書いていこうと思います。
今回の3回目では「メソッド(methods)」を紹介します。
前の記事は以下を参照してください。
- Vue.js 入門(第1回) - Vue.jsでHello World と双方向データバインディング(v-model) -
- Vue.js 入門(第2回) - 算出プロパティ(computed)と監視(watch) -
※ここではVue.jsの**2.x系(2.6.14)**を使用しています。3.x系では書き方が異なるので注意してください。
1. メソッド(methods)
methods
オプションを指定することで、v-on
のイベントハンドラとして呼び出されるメソッドを定義することができます。
1.1. jsの作成
var vm = new Vue({
el: '#app',
data: { // (1)
items: ['HTML', 'CSS', 'JavaScript'],
input: ''
},
methods: { // (2)
addItem: function(item) { // (3)
this.items.push(item) // (4)
this.input = '' // (5)
}
}
});
(1)dataとしてitems
変数とinput
変数を定義します。ここで、items
変数は['HTML', 'CSS', 'JavaScript']
と配列を定義しています。
(2)methods
でメソッドを定義します。
(3)addItem
という名前のメソッドを定義します。
(4)引数のitem
をitems
変数の配列に追加します。
(5)input
変数に空文字を設定します。
1.2. HTMLの作成
<!DOCTYPE html>
<html lang="jp">
<head>
<meta charset="utf-8">
<title>Vue.js(method)</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="input"> <!-- (1)-->
<button type="button" v-on:click="addItem(input)">追加</button> <!-- (2)-->
<ul>
<li v-for="item in items"> <!-- (3)-->
<span>{{ item }}</span>
</li>
</ul>
</div>
<script src="js/main.js"></script>
</body>
</html>
(1)v-model="input"
で入力された内容とinput
変数を紐付けます。
(2)v-on:click="addItem(input)"
で、「追加」ボタン押下時にaddItem
メソッドを呼び出すようにします。
(3)v-for="item in items"
でitems
変数の配列から1件ずつitem
変数に格納し、繰り返し処理を行います。items
変数の配列の一覧を表示させます。
1.3. 動作確認
index.html
を開くと、以下が表示されます。
初期表示として、テキスト入力欄にinput
変数の初期値(空文字)が表示されます。一覧にはitems
の配列の内容(HTML、CSS、JavaScript)が表示されます。
テキスト入力欄に入力し(ここでは「Vue.js」)、「追加」ボタンを押します。
すると入力した内容が一覧に追加されます。(入力欄はクリアされます。)