[v-for]でテーブル行追加も自動生成
前回はリストを作成しましたが、今回はテーブルを作成してみます。
業務などで使用される場合は、こちらのパターンが多いのではないでしょうか?
なにはともあれ、まず表示。
【すしテーブル】
こちらも「追加」をクリックすると、どんどんリストが作成されます。
今回はこちらを触っていきます。
【HTML部分】
<div id="app">
<input v-model="netaName" /><button @click="addItem">追加</button>
<table id="itemList" border="1">
<tr><td>すしリスト</td></tr>
<tr v-for="item in shari"><td>{{ item }}</td></tr>
</table>
</div>
リスト形式と異なり、<tr>タグ<td>タグで囲むだけです。
JavaScript部分
var netas = ['いくら', '大トロ', 'キングサーモン', 'キャビア', 'ウニ', 'あわび', 'アボカド', 'とびっこ', '白子', '軍艦'];
var random = 0;
new Vue({
el: "#app",
data: {
shari: [],
netaName: "いくら"
},
methods: {
addItem() {
//ランダム整数作成
var random = Math.floor(Math.random() * netas.length)
//生成
this.shari.push(this.netaName)
//次のためにテキストボックスに文字を落とす
this.netaName = netas[random]
}
}
})
前回のリスト作成のものとJavaScript部分は変更ありません。
基本的に処理部分は共通なので、HTML部分に関係なく使いまわせます。
同様の仕組みが使用できるということは、項目数同じでデザインだけ違う部分は1つのコンポーネントを使いまわせますのでDOMの操作をしないことはかなり恩恵を受けることになります。
作り方は昨日のものと同じです。
https://biiver.com/vue-js-4
