一、TodoMVC介绍

TodoMVC 是一个经典项目,让开发者快速实践到框架开发方式。

官网地址:http://todomvc.com/

TodoMVC一句话评价:功能完备不冗余,多样实现引深思。

其实就说的是我们可以再内容中去使用到Vue.js的语法,但不会为了去练习语法而练习语法,再不同的场景体会语法带来的不同效果,对语法进行更深刻的理解。

二、TodoMVC准备工作

• 从 github 克隆项目模板。
• git clone https://github.com/tastejs/todomvc-app-template.git
• 进入项目目录,安装项目依赖
• cd 项目目录
• npm install
• 安装 Vue.js
• npm install vue

通过服务的方式打开网页,我们打开控制台发现,有404资源未找到的错误。

解决404报错问题

我们将base.js文件引入的地方删掉,就可以啦!

三、TodoMVC需求分析

一、事项列表展示
   • 有事项的情况
   • 没有事项的情况

• 引入 vue.js 文件,创建 Vue 实例设置挂载元素。

引入未压缩的vue.js文件,方便我们使用DevTools插件调试。压缩的vue.js文件无法使用该插件。

• 在 data 中设置 todos 存储初始数据。

app.js文件

(function (window) {'use strict';// Your starting point. Enjoy the ride!new Vue({el: '#app',data: {todos: [//todos用于存储所有事项信息{ id: 1, title: '示例内容1', completed: true},{ id: 2, title: '示例内容2', completed: false},{ id: 3, title: '示例内容3', completed: false},]}})})(window);

设置事项视图:

index.html文件

<li v-for="todo in todos" :key="todo.id" :class="{completed:todo.completed}"><div class="view"><!-- 选框 --><input class="toggle" type="checkbox" v-model="todo.completed"><label>{{ todo.title }}</label><button class="destroy"></button></div><input class="edit" value="Rule the web">
</li>

设置有无事项时的显示状态:

index.html文件

<section class="main" v-show="todos.length">...</section>
<footer class="footer" v-show="todos.length">...</footer>

二、状态栏信息展示

需要实现的功能为:• 个数展示   • 单位处理

• 个数展示

app.js文件

computed: {
//用于获取待办事项个数remainning() {//return this.todos.filter(todo => !todo.complted).length;return this.todos.filter(function (todo) {return !todo.completed;})}}

index.html文件

<footer class="footer" v-show="todos.length"><!-- This should be `0 items left` by default --><span class="todo-count"><strong>{{ remaining }}</strong> item left</span><!-- Remove this if you don't implement routing --><ul class="filters"><li><a class="selected" href="#/">All</a></li><li><a href="#/active">Active</a></li><li><a href="#/completed">Completed</a></li></ul><!-- Hidden if no completed items are left ↓ --><button class="clear-completed">Clear completed</button>
</footer>

• 单位处理(方法一)

app.js文件

methods: {//单位处理,当待办事项为1时,显示item,当为除了1以外其他数字时为items//注意:0也是itemspluralize: function () {return this.remaining === 1 ? 'item' : 'items';}}

index.html文件

<footer class="footer" v-show="todos.length"><!-- This should be `0 items left` by default --><span class="todo-count"><strong>{{ remaining }}</strong> {{ pluralize() }} left</span><!-- Remove this if you don't implement routing --><ul class="filters"><li><a class="selected" href="#/">All</a></li><li><a href="#/active">Active</a></li><li><a href="#/completed">Completed</a></li></ul><!-- Hidden if no completed items are left ↓ --><button class="clear-completed">Clear completed</button>
</footer>

• 单位处理(方法二)

app.js文件

methods: {//单位处理,当待办事项为1时,显示item,当为除了1以外其他数字时为items//注意:0也是itemspluralize: function (word) {return word + (this.remaining === 1 ? '' : 's');}}

index.html文件

<footer class="footer" v-show="todos.length"><!-- This should be `0 items left` by default --><span class="todo-count"><strong>{{ remaining }}</strong> {{ pluralize() }} left</span><!-- Remove this if you don't implement routing --><ul class="filters"><li><a class="selected" href="#/">All</a></li><li><a href="#/active">Active</a></li><li><a href="#/completed">Completed</a></li></ul><!-- Hidden if no completed items are left ↓ --><button class="clear-completed">Clear completed</button>
</footer>

三、事项状态切换

需要实现的功能为:• 单个事项切换   • 多个事项切换

单个事项切换通过 v-model 的设置已经实现了,体会双向数据绑定的好处。

多个事项切换分为 2 部分功能:• 单个事项操作  • 全部切换选框操作

单个事项切换会导致 toggle-all 状态变化,我们可以通过remaining 来进行判断:

四、TodoMVC功能实现

(22)Vue.js 综合案例:TodoMVC相关推荐

  1. [Vue.js] 深入 -- 案例 - 购物车

    案例 - 购物车 按照组件化方式实现业务需求 根据业务功能进行组件化划分 标题组件(展示文本) 列表组件(列表展示.商品数量变更.商品删除) 结算组件(计算商品总额) 功能实现步骤 实现整体布局和样式 ...

  2. [Vue.js] 基础 -- 案例之Tab选项卡

    实现效果 实现步骤 实现静态UI效果 用传统的方式实现标签结构和样式 基于数据重构UI效果 将静态的结构和样式重构为基于Vue模板语法的形式 处理事件绑定和js控制逻辑 声明式编程 模板的结构和最终显 ...

  3. Vue.js 入门案例

    理解MVVM模型 <!DOCTYPE html> <html lang="en"> <head><meta charset="U ...

  4. vue.js 入门案例,双向绑定实现任务清单

    vue.js 开发环境安装成功. http://localhost:8080/ 使用vue.js双向绑定实现类似这样一个任务清单页面. 下面是我的学习笔记. //app.vue页面 <templ ...

  5. Vue.js小案例(2)

    即时搜索 这个例子主要应用了vue.js的自定义过滤器,可以通过 Vue.filter() 注册一个全局过滤器,具体用法可以参考 这里,vue.js也提供了一些 内置过滤器. CSS代码: [v-cl ...

  6. vue ---- 指令综合案例

    代码地址: https://codechina.csdn.net/weixin_44235759/vue-brand-list-demo 案例分析: 列表如何渲染 数据源 list: [{ id: 1 ...

  7. vue ---- 组件综合案例(购物车案例)

    获取数据 装包npm i axios -S,在app.vue中导入axios APP组件中获取数据的方法,和 生命周期函数 methods: {//封装请求列表数据的方法async initCarLi ...

  8. 【服务端渲染】NuxtJs 综合案例

    前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:建议通过左侧导航栏进行阅读 Nuxt.js 综合案例 基本介绍 案例名称:RealWorld 一个开源的学习项目,目的就是帮助开发者快速学习新技能 ...

  9. [Vue.js] 基础 -- 综合案例 -- 图书管理

    综合案例 – 图书管理 补充知识(数组相关API) 变异方法(修改原有数据) push() pop() shift() unshift() splice() sort() reverse() 替换数组 ...

最新文章

  1. Xamarin iOS开发中的编辑、连接、运行
  2. word样式基准_「word技巧」简单的排版技巧—给word文档添加各种样式边框线
  3. Controller向View传值方式总结
  4. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(7) - 状态清除指令 小结
  5. ubuntu 安装搜狗输入法(解决部分ubuntu安装完没有键盘选择栏)
  6. POJ - 3190
  7. CSS 用户界面样式
  8. Observer模式(观察者设计模式)
  9. 单目深度估计方法:算法梳理与代码实现
  10. 如何用div隐藏table中的某几行呢?
  11. Windows下效率必备软件
  12. Matlab求特征值和特征向量 + find函数的基本简单用法
  13. Hadoop HA架构图
  14. springboot中格林尼治时间转指定格式时间
  15. 青龙面板--京东试用申请
  16. 选队长游戏(Java)
  17. C语言中typedef的用法
  18. 神经网络(NN)网络构建及模型算法介绍
  19. win10无法安装完成若要在此计算机上,windows10无法完成安装怎么解决_win10提示windows无法完成安装的解决教程...
  20. [Spark进阶]--Spark配置参数说明

热门文章

  1. Java 8 Lambda 表达式解析 1
  2. POJ 3045 Cow Acrobats (最大化最小值)
  3. python多线程同步
  4. php 0和字符串比较为真
  5. Craigslist模式在中国如何复制?中国特色的差异化在哪里?,互联网营销
  6. DIV+CSS 之 网页切图过程中div+css命名规则
  7. oracle的clob字段导致线上应用无响应问题及解决
  8. mysql中使用日期加减时无法识别年-月格式数据的问题,%Y-%m这种格式数据
  9. ios开发之--调整UISearchBar的输入框的背景颜色
  10. sccm 2007 r2 step by step 之十五 补丁管理