安装依赖

官网

安装依赖的css,js

$npm install

引入vue

<script src="js/vue.js"></script>

定义初始化数据

在app.js中,实例化Vue,然后定义初始化数据

{ //为了形成块级作用域()()
let vm = new Vue({
el: '#app',
data: {
datas: [
{id: 121,title: 'html5',isCompleted: false},
{id: 122,title: 'css3',isCompleted: false},
{id: 123,title: 'js6',isCompleted: false},
]
}
})

绑定假数据到li上

如果当前的isCompleted是true,就是显示选中状态

<li :class="{completed: isCom}" v-for="(item,index) in datas">
<div class="view">
<input class="toggle" type="checkbox">
<label>{{ item.title }}</label>
<button class="destroy"></button>
</div>
<input class="edit" value="Create a TodoMVC template">
</li>

双向数据绑定

<input class="new-todo" placeholder="What needs to be done?" v-model="val">
val: '', //显式声明 输入框数据

回车输入数据

<input class="new-todo" placeholder="What needs to be done?" @keyup.enter="addItem" v-model="val">
methods: {
addItem(){
if(this.val){ //val存在或者非空的时候才会去添加
this.datas.push({
//console.log(new Date().getTime());
id: new Date().getTime(), //为了保持id的唯一
title: this.val,
isCompleted: false,
});
this.val = ''; //填完数据以后清空输入框的内容
}
}
}

显示总计

通过一个方法来计算数组数据的长度

methods: {
addItem(){
if(this.val){ //val存在或者非空的时候才会去添加
this.datas.push({
//console.log(new Date().getTime());
id: new Date().getTime(), //为了保持id的唯一
title: this.val,
isCompleted: false,
});
this.val = ''; //填完数据以后清空输入框的内容
}
},
clearCompleted(){
let arr = [];
//遍历datas,如果当前选项是未选中,就把它留下
this.datas.forEach(function(elem){
if(!elem.isCompleted){
arr.push(elem);
}
},this)
this.datas = arr;
}
}

首先绑定计算属性

<span class="todo-count"><strong>{{ legTotal }}</strong> item left</span>

选中后显示隐藏completed

通过v-show来控制显示隐藏

<button class="clear-completed" v-show="isShowClear">Clear completed</button>
//在计算属性中
compluted: {
isShowClear(){
for(let i=0;i<this.datas.length;i++){
if(this.datas[i].isCompleted){
return true
}
}
return false
}
}

点击clear completed删除选中项

绑定点击事件

<button class="clear-completed" v-show="isShowClear" @click="clearCompleted">Clear completed</button>

在方法中写这个点击事件

clearCompleted(){
let arr = [];
//遍历datas,如果当前选项是未选中,就把它留下
this.datas.forEach(function(elem){
if(!elem.isCompleted){
arr.push(elem);
}
},this)
this.datas = arr;
},

点击X号删除当前项

添加点击事件

<button class="destroy" @click="removeCurrent(index)"></button>
removeCurrent(index){
this.datas.splice(index,1);
}

全选全不选

点击全选如果是true,让数据全部变成非选中状态;

<input id="toggle-all" class="toggle-all" type="checkbox"  @click="checkedAll">
//在方法中
checkedAll(){
if(this.isCheckedAll){ //全部选中
this.datas.forEach(elem=>{
elem.isCompleted = false;
})
}else{
this.datas.forEach(elem=>{
elem.isCompleted = true;
}) }
this.isCheckedAll = !this.isCheckedAll;
}

写在最后

大家可以练习练习。

todocmvc的安装的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. linux系统命令行基本组成元素

    一.shell prompt(PS1) 命令行提示符 1. 游标(coursor) 当你成功登录进一个文字界面之后,大部份情形下,你会在荧幕上看到一个不断闪烁的方块或底线(视不同版本而别),我们称之为 ...

  2. SpringBoot的配置属性文件*.properties值如何映射到类中使用

    想要在JAVA Bean中读取配置文件中的内容有两种方式,可以进行获取到 第一种方式: 1.在默认的配置文件application.properties 中进行设置 Key-Value键值对 com. ...

  3. c++对象模型是什么,对象的内存布局和结构问题

    在c++发明的初期对于c++对象模型的争论从来没有停止过直到标准委员会通过了最终的c++对象模型这件事情才变得尘埃落定.C++对象模型可能是最不需要去解释的,但是又是不得不去说的因为c++的入门最先接 ...

  4. Linux useradd 与 adduser的区别, /sbin/nologin 与 /bin/bash

    摘自:https://blog.csdn.net/danson_yang/article/details/65629948 Linux useradd 与 adduser的区别, /sbin/nolo ...

  5. ubuntu14.04下安装qt5

    1.sudo apt-get install build-essential 2.先打开终端快捷键ctrl+t 3. 然后输入: sudo apt-get install cmake qt5-defa ...

  6. 1256 Anagram

    题目链接: http://poj.org/problem?id=1256 题意: 根据自定义的字典序: 'A'<'a'<'B'<'b'<...<'Z'<'z' 和输 ...

  7. centos7如何知道jdk的在哪个目录

    今天一个小实验需要安装jdk,用命令Java -version查询了一下,原来Centos7自带OpenJDK的环境,但是需要手动配置/etc/profile文件,于是开始找java的安装路径.... ...

  8. Spring下集成ActiveMQ推送

    本文是将ActiveMQ消息制造者集成进spring,通过spring后台推送消息的实现. 首先是spring的applicationContext的配置,如下 <?xml version=&q ...

  9. windows 安装 mysql5.7.17

    下载mysql 进入官网:https://www.mysql.com/ 单击[Downloads]选项卡 最下面有个[  MySQL Community Edition (GPL)],单击[Commu ...

  10. Linux-在新买的阿里云服务器上部署Tomcat并支持外网访问的配置(步骤记录)

    一.首先你得有一台外网上的服务器 华为.腾讯.阿里都有云服务售卖,我这里是在阿里云打折时购买的. 二.使用Xshell和XFTP连接上云服务 当然了,连接工具有很多种,可随意.购买服务器之后,你会收到 ...