总结:提交事项后清空输入框,将页面分为代办事项与完成事项。
注:root element不能使用v-for,因为这样会生成更多的元素,vue无法渲染。解决:可以在根元素下添加子元素执行v-for,或者使用【Vue-Fragment】库,
<fragment> // fragment是一个虚拟标签。 v-for内容,放在<fragment>内部。 </fragment
展望:数据库,美化。
APP.vue
<template>
<div id="app">
<h1>ToDoList</h1>
<select id="selectTime" v-model="selectTime" >
<option value="" selected>选择时间</option>
<option v-for='item in timeList' :key=item.id>{{ item }}</option>
</select>
<input type="text" v-model="addSomething"><button @click="add">提交</button>
<ul id="something">
<li v-for='(value,index) in list' :key=index @click="update(index)">
{{ value.time }} {{ value.thing }}
</li>
<!-- <li v-for=' in list' ></li> -->
</ul>
<done :doneThing="doneThing">
</done>
</div>
</template>
<script>
// import func from '../vue-temp/vue-editor-bridge';
import done from './components/done';
export default {
name: 'App',
components: {
done
},
data(){
return{
addSomething:"",
selectTime:"",
list:[],
doneThing:[],
timeList:['8:00-9:00','9:00-10:00','10:00-11:00','11:00-12:00','12:00-13:00']
}
},
methods:{
add:function(){
// var obj = {
// time:
// }
this.list.push({time: this.selectTime, thing: this.addSomething});
this.addSomething='';
this.selectTime=""
},
update:function(index){
//1.赋给完成事项
this.doneThing.push(this.list[index])
//2.移除待办事项
this.list.splice(index,1)
alert('Well Done!')
},
// addTime:function(){
// console.log(this.selectTime)
// },
}
}
</script>
<style>
#app {
margin: 100 auto;
text-align: center;
list-style-type: none;
}
</style>
done.vue
<template>
<div class="done_thing">
<h1>DoneList</h1>
<li v-for='(value,index) in doneThing' :key=index>
{{ value.time }} {{ value.thing }}
</li>
</div>
</template>
<script>
export default {
props:["doneThing"],
data(){
return{
}
},
}
</script>
<style>
</style>