<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue Todo App</title>
<style>
body { font-family: Arial, sans-serif; }
.todo-list { list-style-type: none; padding: 0; }
.todo-item { margin: 10px 0; padding: 10px; border: 1px solid #ccc; }
.todo-item input[type="text"] { width: calc(100% - 60px); }
.todo-item button { margin-left: 10px; }
</style>
</head>
<body>
<div id="app">
<h1>Todo List</h1>
<input v-model="newTodo" @keyup.enter="addTodo" placeholder="Add a new todo">
<ul class="todo-list">
<li v-for="(todo, index) in todos" :key="index" class="todo-item">
<input type="text" v-model="todo.text" @blur="editTodo(index, todo.text)">
<button @click="removeTodo(index)">Delete</button>
</li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
<script>
new Vue({
el: '#app',
data: {
newTodo: '',
todos: []
},
methods: {
addTodo() {
if (this.newTodo.trim() !== '') {
this.todos.push({ text: this.newTodo.trim() });
this.newTodo = '';
}
},
removeTodo(index) {
this.todos.splice(index, 1);
},
editTodo(index, newText) {
// This method is called when the input blurs, but we could also
// handle it differently, like on a separate save button click.
// For simplicity, we'll just log the edit here and assume it's saved.
console.log(`Todo at index ${index} was edited to: ${newText}`);
// If we wanted to actually save the edit back to the todos array,
// we could do something like this:
// this.$set(this.todos, index, { text: newText });
// But since we're using v-model, the edit is already reactive.
}
}
});
</script>
</body>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
通过vue实现一个简单的待办事项应用程序.rar (1个子文件)
todo.html 2KB
共 1 条
- 1
资源评论
图表制作解说
- 粉丝: 648
- 资源: 183
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功