vue商品リストの追加・削除を実現する実例解説
まずコードを見に来ました。
vueにコンポーネントを登録し、リストの追加削除効果を実現します。
1、まずhtmlの<コード>タグの中で
<div id="app">
<div class="container"><form class="form-inline">
<div class="form-group"><label for="exampleInputName2">ID:</label> <input id="exampleInputName2" class="form-control" type="text" /></div>
<div class="form-group"><label for="exampleInputEmail2">Name:</label> <input class="form-control" type="text" /></div>
<button class="btn btn-primary" type="button"> </button></form>
<table class="table table-hover table-striped">
<tbody>
<tr>
<td>ID</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>{{item.id}}</td>
<td>{{item.pp_name}}</td>
<td>{{item.add_time | getTime()}}</td>
<td><a> </a></td>
</tr>
</tbody>
</table>
</div>
</div>
<script type="text/javascript">// <![CDATA[
var app = new Vue({
el: '#app',
data: {
id : '',
name : '',
list : [
{id : 1, pp_name : ' ', add_time : new Date()},
{id : 2, pp_name : ' ', add_time : new Date()},
{id : 3, pp_name : ' ', add_time : new Date()},
{id : 4, pp_name : ' ', add_time : new Date()}
]
},
methods: {
add : function(){
//
this.list.push({id : this.id, pp_name : this.name, add_time : new Date()});
this.id = this.name = ''
},
/*
id
: id, id
splice
*/
del : function(id){
this.list.some((item,i) =>{
if(item.id === id){
this.list.splice(i,1);
// some true,
return true;
}
})
}
},
//
filters:{
getTime:function(value){
let date = new Date(value),
Y = date.getFullYear(),
m = date.getMonth() + 1,
d = date.getDate(),
h = date.getHours(),
min = date.getMinutes(),
s = date.getSeconds();
if(m<10){m = '0' +m;}
if(d<10){d = '0' +d;}
if(h<10){h = '0' +h;}
if(min<10){min = '0' +min;}
if(s<10){s = '0' +s;}
let t = Y + '-' + m + '-' + d + ' | ' + h + ':' + min + ':' + s;
return t;
}
}
})
// ]]></script>
内容補足:vueにコンポーネントを登録し、リストの追加削除効果を実現します。
1、まずhtmlの<コード>タグの中で
vue.jsを します。
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
2、bodyでvueテンプレートを したコンテナを します。
// vue root
<div id="root">
// input mesg
<input v-model="mesg" />
<button @click="handle"> </button>
<ul>
<todo-item v-for='(item,index) in list' :key='index' :index='index' :content='item' @delete='deletes'></todo-item>
</ul>
</div>
3、scriptタグにtodo-intemというコンポーネントを して する
Vue.component('todo-item', {
props: ['content', 'index'],
template: '<li @click="handelClick">{{content}}</li>',
methods: {
handelClick: function() {
// li delete
this.$emit('delete', this.index);
}
}
})
4、scriptタグの でvueインスタンスを する
new Vue({
el: '#root',
data() {
return {
list: [],
mesg: ''
}
},
methods: {
// ,
handle: function() {
if(this.mesg==''){
return;
}
this.list.push(this.mesg);
this.mesg = ''
},
deletes: function(index) {
alert(index)
this.list.splice(index, 1);
}
}
})
ここでvue リストの について した を します。 リストに を します。 の を してください。または の を き きご ください。これからもよろしくお いします。