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`)。
* 可以根据需求进行扩展和修改。

