当前位置:实例文章 » HTML/CSS实例» [文章]Vue中TodoList案例_编辑

Vue中TodoList案例_编辑

发布人:shili8 发布时间:2025-03-03 08:18 阅读次数:0

**Vue 中 TodoList 案例**

在本文中,我们将创建一个简单的 TodoList 应用,展示 Vue 的基本使用方法。这个应用将包括以下功能:

* 添加新任务* 删除已完成任务* 编辑任务名称和描述* 完成任务**项目结构**

bashtodo-list/
public/
index.htmlsrc/
App.vuemain.jsstore/
index.jsTodoList.vuecomponents/
TodoItem.vueTodoForm.vueutils/
dateUtil.jspackage.json

**TodoList 组件**

首先,我们需要创建 TodoList 组件。这个组件将负责展示任务列表和提供编辑功能。

javascript// src/components/TodoList.vue<template>
 <div>
 <h1>Todo List</h1>
 <ul>
 <li v-for="(todo, index) in todos" :key="index">
 {{ todo.name }} ({{ todo.done ? '完成' : '未完成' }})
 <button @click="editTodo(todo)">编辑</button>
 <button @click="deleteTodo(todo)">删除</button>
 </li>
 </ul>
 </div>
</template>

<script>
export default {
 name: "TodoList",
 data() {
 return {
 todos: [
 { id:1, name: '任务一', done: false },
 { id:2, name: '任务二', done: true },
 { id:3, name: '任务三', done: false }
 ]
 };
 },
 methods: {
 editTodo(todo) {
 console.log('编辑任务:', todo);
 },
 deleteTodo(todo) {
 console.log('删除任务:', todo);
 }
 }
};
</script>

**TodoItem 组件**

接下来,我们需要创建 TodoItem 组件。这个组件将负责展示单个任务。

javascript// src/components/TodoItem.vue<template>
 <li>
 {{ name }} ({{ done ? '完成' : '未完成' }})
 <button @click="toggleDone">完成</button>
 </li>
</template>

<script>
export default {
 name: "TodoItem",
 props: ['todo'],
 data() {
 return {
 done: this.todo.done };
 },
 methods: {
 toggleDone() {
 console.log('任务完成:', this.todo);
 }
 }
};
</script>

**TodoForm 组件**

接着,我们需要创建 TodoForm 组件。这个组件将负责提供添加新任务的表单。

javascript// src/components/TodoForm.vue<template>
 <form @submit.prevent="addTodo">
 <input type="text" v-model="name" placeholder="输入任务名称">
 <button>添加</button>
 </form>
</template>

<script>
export default {
 name: "TodoForm",
 data() {
 return {
 name: ''
 };
 },
 methods: {
 addTodo() {
 console.log('添加新任务:', this.name);
 }
 }
};
</script>

**App 组件**

最后,我们需要创建 App 组件。这个组件将负责展示 TodoList 和 TodoForm。

javascript// src/App.vue<template>
 <div>
 <TodoList />
 <TodoForm />
 </div>
</template>

<script>
import TodoList from './components/TodoList.vue';
import TodoForm from './components/TodoForm.vue';

export default {
 name: "App",
 components: { TodoList, TodoForm }
};
</script>

**main.js**

javascript// src/main.jsimport Vue from 'vue';
import App from './App.vue';

Vue.createApp(App).mount('#app');


在上面的代码中,我们创建了一个简单的 TodoList 应用,展示了 Vue 的基本使用方法。这个应用包括添加新任务、删除已完成任务、编辑任务名称和描述以及完成任务等功能。

**注意**

* 这个案例仅供参考,不适合生产环境。
* 需要在项目中安装必要的依赖项(例如 `vue` 和 `vuex`)。
* 可以根据需求进行扩展和修改。

其他信息

其他资源

Top