<template> <div id="root"> <div class="todo-container"> <div class="todo-wrap"> <Top :received="received" /> <List :todos="todos" :checkTodo="checkTodo" :deleteTodo="deleteTodo" /> <Bottom :todos="todos" :checkAllTodo="checkAllTodo" :clearAllTodo="clearAllTodo" /> </div> </div> </div> </template> <script> import Top from './components/Top.vue' import Bottom from './components/Bottom.vue' import List from './components/List.vue' export default { name: 'App', components: Top, List, Bottom }, data() { return { todos: [{ id: '001', title: 'Eating', done: true }, { id: '002', title: 'Sleep', done: false }, { id: '003', title: 'Playing Beans', done: false }, ] } }, methods: { //Add a todo received(todoObj) { this.todos.unshift(todoObj); }, //Uncheck todo checkTodo(id) { this.todos.forEach((todo) => { //Function bodyif (todo.id === id) todo.done = !todo.done; }) }, //deleteTodo(id) { this.todos = this.todos.filter(todo => todo.id !== id) }, //Select all or deselect all checkAllTodo(done) { this.todos.forEach((todo) => { todo.done = done }) }, // Clear all completed data clearAllTodo() { this.todos = this.todos.filter((todo) => { return !todo.done }) } } } </script> <style lang="css"> /*base*/ body { background: #fff; } .btn { display: inline-block; padding: 4px 12px; margin-bottom: 0; font-size: 14px; line-height: 20px; text-align: center; vertical-align: middle; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); border-radius: 4px; } .btn-danger { color: #fff; background-color: #da4f49; border: 1px solid #bd362f; } .btn-danger:hover { color: #fff; background-color: #bd362f; } .btn:focus { outline: none; } .todo-container { width: 600px; margin: 0 auto; } .todo-container .todo-wrap { padding: 10px; border: 1px solid #ddd; border-radius: 5px; } </style> SummarizeThis article ends here. I hope it can be helpful to you. I also hope you can pay more attention to more content on 123WORDPRESS.COM! You may also be interested in:
|
<<: Detailed explanation of flex layout in CSS
>>: Summary of several principles that should be followed in HTML page output
Table of contents 1. Event delegation Event Bubbl...
Native js realizes the carousel effect (seamless ...
Today, I encountered a problem: the content in the...
This article shares with you how to use the Vue s...
Table of contents 1. Open source warehouse manage...
To automatically load kernel modules in CentOS, y...
Below is the code that Shiji Tiancheng uses to ca...
Nginx first decides which server{} block in the c...
Those who have played King of Glory should be fam...
This article shares the specific code of swiper+e...
Project scenario: There is a <ul> tag on th...
In Linux system, newly install docker and enter t...
Table of contents Events in js Event Type Common ...
Preface This article explains how to create a dat...
1. Introduction When you encounter a requirement ...