<!-- 主体区域 -->
<section id="app">
<!-- 输入框 -->
<header class="header">
<h1>记事本</h1>
<input v-model="todoName" placeholder="请输入任务" class="new-todo" />
<button @click="add()" class="add">添加任务</button>
</header>
<!-- 列表区域 -->
<section class="main">
<ul class="todo-list">
<li class="todo" v-for="(item ,index) in list" :key="item.id">
<div class="view">
<span class="index">{{ index + 1 }}.</span> <label>{{ item.name }}</label>
<button @click="del(item.id)" class="destroy"></button>
</div>
</li>
</ul>
</section>
<!-- 统计和清空 -->
<footer v-show="list.length > 0" class="footer">
<!-- 统计 -->
<span class="todo-count">合 计:<strong> {{ this.list.length }} </strong></span>
<!-- 清空 -->
<button @click="clear()" class="clear-completed">
清空任务
</button>
</footer>
</section>
<!-- 底部 -->
<script>
const app = new Vue({
el: '#app',
data: {
todoName:'',
list: [
{ id: 1, name: '吃饭' },
{ id: 2, name: '睡觉' },
]
},
methods: {
del (id) {
this.list = this.list.filter(item => item.id !== id)
},
add () {
if (this.todoName.trim() === '') {
alert('请输入任务名称')
return
}
this.list.unshift({
id: +new Date(),
name: this.todoName
})
this.todoName = ''
},
clear () {
this.list = []
}
}
})
</script>
arr.unshift( ) 添加到数组开头
用时间戳表示唯一的id
app.list
app=this → this.list