惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Martin Fowler
Martin Fowler
B
Blog RSS Feed
D
DataBreaches.Net
L
LangChain Blog
月光博客
月光博客
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
美团技术团队
Jina AI
Jina AI
博客园 - 司徒正美
雷峰网
雷峰网
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
小众软件
小众软件
罗磊的独立博客
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta

追梦人物的博客

小度智能设备接入 Home Assistant,支持小爱同学语音控制 - 追梦人物的博客 0x05:Merkle Tree & Patricia Trie 0x04:ECDSA - 以太坊设计与实现 LeetCode 105 从前序与中序遍历构造二叉树 迭代算法原理 + 完整证明 0x03:Address - 以太坊设计与实现 0x02:Secp256k1 - 以太坊设计与实现 0x00:专栏开篇 - 以太坊设计与实现 0x01:RLP 编码 - 以太坊设计与实现 Bellman-Ford 算法原理及其在 DeFi 套利中的应用 - 追梦人物的博客 迪杰斯特拉(Dijkstra)最短路径算法原理、实现与证明 - 追梦人物的博客 实战:CEX-DEX 稳定币套利监控程序开发 - 追梦人物的博客 CEX-DEX 稳定币套利模型 - 追梦人物的博客 Uniswap 手续费和协议费机制剖析 - 追梦人物的博客 Uniswap 流动性机制及相关数学原理分析 - 追梦人物的博客 uv 替代 pyenv + pipx + poetry 环境管理实践 Rust 项目从创建到发布 - 追梦人物的博客 VS Code 调试 Python - 追梦人物的博客 比特币跨市场套利的数学模型 - 追梦人物的博客 ERC-20 相关知识点总结 - 追梦人物的博客 Django 老项目如何从 SQLite 迁到 PostgreSQL 自动生成接口文档 - HelloDjango - django REST framework 教程 单元测试 - HelloDjango - django REST framework 教程 限制接口访问频率 - HelloDjango - django REST framework 教程 API 版本管理 - HelloDjango - django REST framework 教程 如何在 Windows 下搭建高效的 django 开发环境 拓展Python Markdown - 追梦人物的博客 加缓存为接口提速 - HelloDjango - django REST framework 教程 基于 drf-haystack 实现文章搜索接口 - HelloDjango 评论接口 - HelloDjango - django REST framework 教程 实现分类、标签、归档日期接口 - HelloDjango - django REST framework 教程
删除todo - Vue 2.x Todo 教程
2019-01-07 · via 追梦人物的博客

有了之前的基础,删除 todo 的功能变得易如反掌,我们只需要监听用户点击删除按钮的事件,绑定一个删除 todo 的方法,将当前需要删除的 todo传给 vue,vue 就知道我们要删除哪个 todo了。

<ul>
    <li v-for='todo in todos' :key='todo.id'>
        ...
        <input type="button" value="删除" @click="removeTodo(todo)">
        ...
    </li>
</ul>
...
<script>
    let id = 0; // 用于 id 生成
    var app = new Vue({
        ...
        methods: {
            ...
            removeTodo: function (todo) {
                this.todos.splice(this.todos.indexOf(todo), 1)
            }
        }
    })
</script>

这里用到两个 JavaScript 数组的相关方法,this.todos.indexOf(todo) 用来定位元素的位置,然后我们删除掉这个位置的元素 splice(index, 1),1 表示只删除一个,即当前位置(index 的值)的元素。

由于 todos 是一个数组,所以我们这里将大量涉及 js 的数组操作,不妨浏览一下 js 数组都有哪些方法可以为我们所用。

练习

练习一:我们现在的删除操作非常粗暴,只要一点击 todo 就彻底消失了。能否温和一点,让用户点击删除时并非真正地删除,而是弹出一个提示框,提示用户确定删除这个 todo 么?用户可以确认也可以取消。

练习二:还有一种温和的删除方式,用户点击删除不会提示,但是删除后会出现一个撤销按钮,允许用户撤销当前的删除操作,点击撤销后之前删除的 todo 又回来了。

更进一步,我们为用户提供一个回收站功能,里面记录用户的全部已删除 todo,用户可以还原删除的 todo。(hint:这个功能等讲到我们实现 todo 的筛选后就知道如何做了,目前不妨先思考一下。)

-- EOF --