<section id="todoapp"> <header class="header"> <h1><a href="table.html">小小记事本</a></h1> <input v-model="inputValue" @keyup.enter="add" autofocus="autofocus" autocomplete="off" placeholder="请输入任务" class="new-todo"></input> </header> <section class="main"> <ul class="todo-list"> <li class="todo" v-for="(item,index) in list"> <div class="view"> <span class="index">{{ index+1 }}.</span> <label v-if="!item.editing">{{ item.content }}</label> <input v-else v-model="item.content" @keyup.enter="save(index)" @blur="save(index)" class="edit"> <button class="edit-button" @click="edit(index)" v-if="!item.editing">编辑</button> <button class="save-button" @click="save(index)" v-if="item.editing">保存</button> <button class="destroy" @click="remove(index)"></button> </div> </li> </ul> </section> <footer class="footer" v-show="list.length!==0"> <span class="todo-count" v-if="list.length!==0"> <strong>{{ list.length }}</strong> items left </span> <button v-show="list.length!==0" class="clear-completed" @click="clear"> Clear </button> </footer> </section>在这里面加入增、删的功能
时间: 2023-07-19 08:03:06 浏览: 97
要实现增删功能,需要在Vue实例中添加相应的方法,以下是一个简单的实现:
```
new Vue({
el: '#todoapp',
data: {
inputValue: '',
list: []
},
methods: {
add() {
if (this.inputValue.trim() === '') {
return;
}
this.list.push({
content: this.inputValue.trim(),
editing: false
});
this.inputValue = '';
},
remove(index) {
this.list.splice(index, 1);
}
}
});
```
在上述代码中,`add` 方法用于添加新的任务,如果输入框中的值为空,则不进行添加。添加时,将输入框中的值作为新任务的内容,同时将 `editing` 属性设置为 `false`,表示该任务当前不处于编辑状态。添加完成后,将输入框中的值清空。
`remove` 方法用于删除任务,传入要删除的任务在数组中的索引,使用 `splice` 方法将其从数组中删除。
需要注意的是,上述代码只实现了最基本的增删功能,还需进一步完善。例如,可以添加任务的完成状态,以便更好地管理任务。
相关问题
<!-- 主体区域 --> <section id="todoapp"> <!-- 输入框 --> <header class="header"> <h1><a href="table.html">小小记事本</a></h1> <input v-model="inputValue" @keyup.enter="add" autofocus="autofocus" autocomplete="off" placeholder="请输入任务" class="new-todo"></input> </header> <!-- 列表区域 --> <section class="main"> <ul class="todo-list"> <li class="todo" v-for="(item,index) in list"> <div class="view"> <span class="index">{{ index+1 }}.</span> <label>{{ item }}</label> <button class="destroy" @click="remove(index)"></button> </div> </li> </ul> </section> <!-- 统计和清空 --> <footer class="footer" v-show="list.length!==0"> <span class="todo-count" v-if="list.length!==0"> <strong>{{ list.length }}</strong> items left </span> <button v-show="list.length!==0" class="clear-completed" @click="clear"> Clear </button> <div id="todoapp"> <input type="text" v-model="inputValue" /> <button @click="add">添加</button> <ul> <li v-for="(item, index) in todoList" :key="index"> {{ item }} <button @click="remove(index)">删除</button> </li> </ul> </div> </footer> </section>实现记事本的增,添,查改
这段代码已经实现了记事本的添加和删除功能,但是没有提供查看和修改功能。如果需要实现查看和修改功能,可以考虑在每个任务项上添加一个编辑按钮,点击编辑按钮后将任务项的内容显示在输入框中,用户可以修改后保存。以下是修改后的代码:
```
<section id="todoapp">
<header class="header">
<h1><a href="table.html">小小记事本</a></h1>
<input v-model="inputValue" @keyup.enter="add" autofocus="autofocus" autocomplete="off" placeholder="请输入任务" class="new-todo"></input>
</header>
<section class="main">
<ul class="todo-list">
<li class="todo" v-for="(item,index) in list">
<div class="view">
<span class="index">{{ index+1 }}.</span>
<label v-if="!item.editing">{{ item.content }}</label>
<input v-else v-model="item.content" @keyup.enter="save(index)" @blur="save(index)" class="edit">
<button class="edit-button" @click="edit(index)" v-if="!item.editing">编辑</button>
<button class="save-button" @click="save(index)" v-if="item.editing">保存</button>
<button class="destroy" @click="remove(index)"></button>
</div>
</li>
</ul>
</section>
<footer class="footer" v-show="list.length!==0">
<span class="todo-count" v-if="list.length!==0">
<strong>{{ list.length }}</strong> items left
</span>
<button v-show="list.length!==0" class="clear-completed" @click="clear"> Clear </button>
</footer>
</section>
```
在每个任务项上添加了一个编辑按钮和一个保存按钮,初始状态下只显示编辑按钮,当用户点击编辑按钮后,任务项的内容会变成一个输入框,同时编辑按钮隐藏,保存按钮显示。当用户修改内容后,可以按回车键或者点击保存按钮保存修改后的任务项内容。同时,也可以在输入框外点击,使输入框消失并保存修改后的内容。
阅读全文