页面展示
相关Vue代码
记得终端导入 nanoid : npm i nanoid
App.vue
<template>
<div id="app">
<div class="todo-container">
<div class="todo-wrap">
<TodoHeader :add="addTodo" />
<TodoList :todos="todos" :checkTodo="checkTodo" :deleteTodo="deleteTodo"/>
<TodoFooter :todos="todos" :checkAllTodo="checkAllTodo" :clearAllTodo="clearAllTodo"/>
</div>
</div>
</div>
</template>
<script>
import TodoHeader from './components/TodoHeader.vue'
import TodoFooter from './components/TodoFooter.vue'
import TodoList from './components/TodoList.vue'
export default {
name:'App',
components:{
TodoHeader,TodoFooter,TodoList},
data(){
return{
todos:[
{
id:'001',title:'抽烟',done:true},
{
id:'002',title:'喝酒',done:false},
{
id:'003',title:'打架',done:true},
{
id:'004',title:'爱国',done:false}
]
}
},
methods:{
addTodo(todoObj){
this.todos.unshift(todoObj)
},
checkTodo(id){
this.todos.forEach((todo)=>{
if(todo.id === id) todo.done = !todo.done
})
},
deleteTodo(id){
this.todos = this.todos.filter((todo)=>{
return todo.id !== id
})
},