作者:HelloGitHub-追梦人物

追梦人物的 Vue 系列教程在他的博客已经全部更新完成,地址:

https://www.zmrenwu.com/courses/vue2x-todo-tutorial/

注意:追梦的博客在国外所以访问速度慢,需要耐心等待一下。本号将不再连载本系列,望周知。

UI

我们先来写好 Todo 应用的 HTML 文档模板,然后再用 Vue 来操作模板中的数据。由于我们的重点在 Vue 的学习,因此 Todo 应用的 UI 采用了极简风格设计。可以看到模板的代码量非常少,如果加入过多的 CSS 样式,在教程中代码看起来就会非常混乱。

HelloVue Todo Tutorial

  • 学习 Vue
  • 整个牛项目
  • 迎娶白富美走上人生巅峰
剩余 3 项未完成 ---筛选:

请复制上述代码到一个 HTML 文件然后使用浏览器打开,你就可以看到界面了。

不过目前还只有 UI,我们接下来将使用 Vue 一步步实现以下完整的功能:

  • 在顶部输入框输入内容,按回车键添加 todo
  • 全部 todo 列表显示在输入框下方的列表
  • 将单个 todo 标为完成
  • 删除单个 todo
  • 双击 todo 进行编辑,按 esc 键取消编辑
  • 下方显示未完成的 todo 数量
  • 可通过筛选按钮筛选未完成的 todo、已完成的 todo 等
  • 可一次性将全部 todo 标为完成,可一次性清除全部已完成 todo,或者一次性清除全部 todo。
  • 其它更加丰富的功能

接下来就让我们一个一个以 Vue 的方式来实现它们吧!

todo 列表

在上面的模板代码中,todo 列表的值都是我们直接写在 HTML 文档里的。合理的情况应该是根据用户添加和删除 todo 时动态地显示全部内容,这就要交给 Vue 了。当然,第一步是要先构建 Vue 的实例,注意这个实例目前是没有绑定任何数据的,其 data 是一个空函数,不返回任何有用的数据:


...

我们现在还没有实现用户添加 todo 的功能,我们先做个弊,假设用户已经输入了一些 todo,存在一个 todos 列表里,现在需要将 Vue 实例和这个 todos 绑定:

var app = new Vue({
el: '#todo-app',
data: function () {
return {
todos: [
{id: 0, title: '学习 Vue'},
{id: 1, title: '整个牛项目'},
{id: 2, title: '迎娶白富美走上人生巅峰'},
]
}
},
})

现在每一个 todo 都是一个对象,它有 id 和 title 两个属性,id 用来唯一标识这个 todo。然后我们就在模板中循环显示这个 todos 列表,Vue 中循环指令用 v-for:


...

  • {{ todo.title }}

...

注意到 v-for='todo in todos' 这种写法,其含义就是循环 todos 列表,将列表的每一项保存到 todo 变量,循环渲染 li 元素的内容。特别注意我们还给 li 元素绑定了一个 key 属性,这将告诉 Vue 每个渲染的 li 元素都是不同的,因为 id 不同。

你可以删除或者添加 todos 列表中的元素,然后刷新浏览器,可以看到页面渲染的内容会跟着变化。你也可以在按 F12 进入浏览器的调试窗口,在命令行(console)输入命令:

app.todos = [
{id: 1, title: '整个牛项目'},
{id: 2, title: '迎娶白富美(或走上人生巅峰)'},
]

这个 app 是我们创建的 Vue 实例的名字,然后引用它绑定的数据 todos,我们给它赋了一个新的值,你会实时地看到浏览器渲染的结果变化了。Vue 就是这么神奇!

显然,人工为 todos 列表添加数据是一点也不好玩的,我们希望在上方的输入框输入想要添加的 todo,然后按回车就自动给我们添加 todo,接下来我们就来实现它。

追梦人物的 Vue 系列教程在他的博客已经全部更新完成,地址:

https://www.zmrenwu.com/courses/vue2x-todo-tutorial/

注意:追梦的博客在国外所以访问速度慢,需要耐心等待一下。HelloGitHub 公众号将不再连载本系列,望周知。

for循环一定要指定键么 vue_第 2 篇:上手 Vue 展示 todo 列表相关推荐

  1. for循环一定要指定键么 vue_vue的for循环使用方法

    vue是一套当下非常受欢迎的构建用户界面的渐进式框架.那如何使用vue进行数据循环呢?下面的案例将使用v-for循环进行数据的遍历. 1.打开html开发工具,新建一个html 代码页面. 2.在新建 ...

  2. for循环一定要指定键么 vue_Vue.JS v-for循环后,想要实现每个单独项实现单独的show的true\false...

    问题是showGallery属性默认为false,但是循环后,所有的都是false,如果点击某一个gallery,所有的showgallery都变成了ture,所以只会显示最上层的那个galler(别 ...

  3. jq循环给指定键赋值

    //更新 修改城市var btns = $('.tab').find('.edits'); //获取所有的HTMLfor (var i = 0; i < btns.length; ++i) { ...

  4. 娱乐蓝屏程序, 禁用键盘鼠标, 指定键可恢复

    实现蓝屏的整体思路: 全屏显示, 自编写蓝屏屏幕 禁用鼠标输入, 禁用所有键盘输入后释放指定按键以退出程序 启动线程不断杀死打开的任务管理器进程 启动线程监听等待用户按键的按下, 以完成退出 目前设置 ...

  5. python3 循环写入一对多键值对_为什么Python 3.6以后字典有序并且效率更高?

    在Python 3.5(含)以前,字典是不能保证顺序的,键值对A先插入字典,键值对B后插入字典,但是当你打印字典的Keys列表时,你会发现B可能在A的前面. 但是从Python 3.6开始,字典是变成 ...

  6. Java删除properties配置文件中指定键值的代码

    将开发过程较好的一些内容片段记录起来,下面的内容段是关于Java删除properties配置文件中指定键值的内容. public static boolean deleteKeyValue4Pro(S ...

  7. PHP二维数组去重(指定键名)

    本例对二维数组中某个指定键名进行去重,发现网上大多使用array_unique或是foreach遍历等方式去重,效果不佳且较为繁琐. 本文以二维数组去重为引,介绍array_column函数的三种用法 ...

  8. php 数组移除指定健,php删除数组指定键的方法

    php删除数组指定键的方法:首先创建一个PHP代码示例文件:然后定义一个"array_remove"方法:最后利用"array_key_exists".&quo ...

  9. php键值对数组排序,PHP按指定键值对二维数组进行排序的方法_PHP

    本文实例讲述了PHP按指定键值对二维数组进行排序的方法.分享给大家供大家参考,具体如下: 问题: 有数组: 代码如下: array(0=>array('id'=>1,'price'=> ...

最新文章

  1. php之cookie
  2. 每日一皮:有一天某程序员去买肉,要了一公斤...
  3. Python算法:动态规划
  4. AI:人工智能的多模态融合模型的简介、发展以及未来趋势
  5. 二进制除法\模2除法
  6. 点击屏幕触发_MAC值得吹爆的便捷「触发角」功能
  7. SpringCloud版本命名
  8. 谷歌android红米手机,小米多款谷歌Android One手机曝光:全是红米系列
  9. 网络编程(基于udp协议的套接字/socketserver模块/进程简介)
  10. LINUX上安装SSH
  11. 搭建企业级Docker Registry -- Harbor
  12. c#html表格样式大全,table完美css样式,table的基本样式,table样式
  13. NanoMsg框架|Android的各模式通讯封装(不另编译动态库附DEMO地址)
  14. 2022年通信工程专业保研:从四非到浙大工院夏令营面试经验分享(前期准备篇/含通信原理面试真题)
  15. 优化算法之引力搜索算法
  16. svg实现多个元素拖拽
  17. matlab中输入数学符号,matlab中特殊符号的写法
  18. JAVA 导出Excel 单元格合并
  19. 开源大型网游服务器架构项目
  20. 云计算-让企业更方便

热门文章

  1. webpack 语法
  2. 深度学习开发者的AI Party来了!WAVE SUMMIT+2021与你相约双十二
  3. CIKM 2021 | 自监督学习在社会化推荐系统中的应用
  4. biu~ 你的智能语音客服已免费一键生成!
  5. 一大批中文(BERT等)预训练模型等你认领!
  6. 本周有哪些值得读的 AI 论文?进来告诉你答案
  7. 来不及想标题了,我要去打包收藏了 | 本周值得读
  8. java第一章Java语言概述和入门程序
  9. 【天池赛事】零基础入门语义分割-地表建筑物识别 Task1:赛题理解与 baseline
  10. javascript基础教程_JavaScript基础教程(九)对象、类的定义与使用