今週はjavascriptのフレームワークvue.jsについて調べ、簡単なプログラムを書きました。
商品名などを入力し、登録ボタンを押すと、下の表の部分に追加されるようにしました。
⬇︎コード⬇️
<html>
<body>
<!-- HTML -->
<div id="app">
<p>
<label>商品名:
<input style="width: 300px" type="text" v-model="name">
</label><br>
<label for="category">商品カテゴリー:</label>
<select id="category" v-model="category">
<option selected>その他</option>
<option>お惣菜🍙</option>
<option>パン🍞</option>
<option>生鮮食品🍅</option>
<option>お菓子🍭</option>
<option>日配食品🐄</option>
</select><br>
<label>廃棄期限:
<input type="date" v-model="deadline">
</label><br>
<label>価格:
<input type="text" v-model="price">
</label><br>
<label for="discount">割引率:</label>
<select id="discount" v-model="discount">
<option selected>定価</option>
<option>10%OFF</option>
<option>20%OFF</option>
<option>30%OFF</option>
<option>50%OFF</option>
<option>セール価格</option>
</select><br>
<label>販売場所
<input type="text" v-model="place">
</label><br>
<button @click="submit()">登録</button>
</p>
<table>
<tr>
<th style="width: 300px">商品名</th>
<th style="width: 100px">商品カテゴリー</th>
<th style="width: 50px">廃棄期限</th>
<th style="width: 50px">価格</th>
<th style="width: 50px">割引率</th>
<th style="width: 50px">販売場所</th>
</tr>
<tr v-for="(item, idx) in list" :style="item.style" :key="item.id">
<td>{{item.name}}</td>
<td>{{item.category}}</td>
<td>{{item.deadline}}</td>
<td>{{item.price}}</td>
<td>{{item.discount}}</td>
<td>{{item.place}}</td>
</tr>
</table>
</div>
<!-- JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el: '#app',
data: {
list: [],
name: '',
category: '',
deadline: '',
price: '',
discount: '',
place: ''
},
methods: {
submit: function() {
this.list.push({
name: this.name,
category: this.category,
deadline: this.deadline,
price: this.price,
discount: this.discount,
place: this.place,
});
}
}
});
</script>
</body>
以上です。