参考链接:

http://www.imooc.com/learn/694

http://www.cnblogs.com/Chen-XiaoJun/p/6238137.html

http://blog.csdn.net/sinat_17775997/article/details/52536010

ES6的写法:

export default {
name: 'hello',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
}
}

export default 和 export 区别:

  1.export与export default均可用于导出常量、函数、文件、模块等
  2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
  3.在一个文件或模块中,export、import可以有多个,export default仅有一个
  4.通过export方式导出,在导入时要加{ },export default则不需要

1.export
//demo1.js
export const str = 'hello world'
export function f(a){ return a+1}
对应的导入方式: //demo2.js
import { str, f } from 'demo1' //也可以分开写两次,导入的时候带花括号 2.export default
//demo1.js
export default const str = 'hello world'
对应的导入方式: //demo2.js
import str from 'demo1' //导入的时候没有花括号                                                   

html部分

<template>
<div id="app">
<h1 v-text="title"></h1>
<input v-model="newItem" @keyup.enter="addNew"/>
<ul>
<li v-for="item in items" v-bind:class="{finished: item.isFinished}" v-on:click="toggleFinish(item)">
<span v-on:click="deleteThis(item)">delete</span>
{{item.label}}
<hr/>
</li>
</ul>
</div>
</template>

js部分

结合localStorage和JSON将item序列化为JSON格式存储

const STORAGE_KEY = 'todos-vuejs'//es6语法 const定义一个常量
export default {
fetch () {//es6语法 相当于 fetch:function(){}
return JSON.parse(window.localStorage.getItem(STORAGE_KEY) || '[]')
},
save (items) {
window.localStorage.setItem(STORAGE_KEY, JSON.stringify(items))
}
}

一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性。

<script>
import Store from './assets/js/store'
import componentA from './components/componentA'
//相当于module.export
export default {
/*function data(){
return...
}*/
/*相当于var vue = new vue({data: function(){}})*/
data () {
return {
title: 'TODO LIST',
items: Store.fetch() || [],
newItem: '',
childWords: ''
}
},
components: {
componentA
},
watch: {
items: { //这是深度watch,监控items变化的时候,自动执行函数
handler: function(items){
Store.save(items)
},
deep: true //也检测item内部的变化
}
},
methods: {
toggleFinish: function(item) {
item.isFinished = !item.isFinished
},
addNew: function() {
this.items.push({
label: this.newItem,
isFinished: false
})
this.newItem = ''
},
deleteThis: function(item) {
this.items.splice(this.items.indexOf(item), 1)
Store.save(this.items)
}
}
}
</script>

CSS部分:

<style>
*{
margin:;
padding:;
}
html {
height: 100%;
}
body {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
width: 100%;
}
#app {
color: #2c3e50;
font-family: Source Sans Pro, Helvetica, sans-serif;
text-align: center;
width: 60%;
}
#app a {
color: #42b983;
text-decoration: none;
}
#app h1:nth-child(1) {
line-height:;
position: absolute;
top: 5%;
}
#app input {
width: 60%;
line-height: 24px;
font-size: 24px;
position: absolute;
top: 25%; left: 20%;
}
ul {
position: absolute;
top: 35%;
text-align: left;
width: 60%;
height: 55%;
overflow: auto;
}
ul li {
list-style: none;
line-height:;
font-size: 24px;
}
span {
font-size: 16px;
color: #fff;
padding: 2px 5px;
text-align: left;
background-color: indigo;
border-radius: 5px;
}
.finished {
color: #ccc;
}
hr {
border-top:1px dashed #ccc;
}
</style>

最终效果

【vue】todolist小练习的更多相关文章

  1. Vue.js基础篇实战--一个ToDoList小应用

    距离开始学Vue已经过去一个多月了,总想把学到的东西柔和在一起,做点东西出来,于是有了这个Todolist小应用. 使用vuex 纯粹基础,没有用到web pack,vuex,npm,下次把它改造一下 ...

  2. Vue编写的todolist小例子

    Vue编写的todolist小例子 本篇博客主要包含一个内容: 1.第一个内容:使用Vue编写todolist例子,包含的主要知识是v-model,v-for,el表达式,以及Vue中使用method ...

  3. Vue + WebApi 小项目:构造自己的在线 Markdown 笔记本应用

    Vue + WebApi 小项目:构造自己的在线 Markdown 笔记本应用 目录 概要 知识点 完整示例图 代码与资源文件 流程步骤 概要 基于 MVP 最小可行性产品设计理念,我们先完成一个可以 ...

  4. Vue之小入门

    Vue之小入门 <div id="app">{{ greeting }}</div> <script> let oDiv = document. ...

  5. 利用ncurses库开发终端工具箱(1)—— ToDoList小工具开发

    准备工作 腾讯云服务器(Ubuntu),C++编程语言 由于想输出界面中包含中文,所以安装库 libncursesw5,依次输入下面三行命令 sudo apt-get install libncurs ...

  6. 跟我一起做一个vue的小项目(二)

    这个vue项目是紧跟着之前的项目跟我一起做一个vue的小项目(一)来的. 我继续后面的开发(写的比较粗糙,边学边记录) 下图是header头部的样式 header组件内容如下 //header.vue ...

  7. 基于vue 、vue-router 、firebase的todolist小项目

    第一次写博客,都不知道改怎么写的好. 本着一颗学习的心,也希望一段时间后再回来在看看自己写的代码,会不会让自己有种不忍直视的念头 *-* 还是先上图吧~ 这是首页,主要是展示所有的列表页面,可以通过输 ...

  8. 基于Vue的小日历(支持按周切换)

      基于Vue的日历小功能,可根据实际开发情况按每年.每月.每周.进行切换 <template> <div class="date"> <!-- 年份 ...

  9. vue.js小总结

    Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统; 指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性; v-for 指令可以绑定数组的数据来渲染一个项目列 ...

随机推荐

  1. 使用SVG绘制流程图

    本篇主要记录流程图的实现过程中的难点和核心技术点,先上效果图: 节点可以任意拖拽,曲线跟随变化 正在连接的线 1.节点实现 流程图是基于SVG绘制的,节点主要利用 g 和 foreignObject的 ...

  2. HTTP协议笔记整理

    有人说过,精通HTTP协议能赢过95%的前端工程师,所以我毅然的踏上这条路,哈哈哈,接下来把自己的学习笔记整理出来. 我会从比较底层的模型开始: 1.网络的五层模型 2.TCP/IP协议 3.HTTP ...

  3. 一步一步pwn路由器之路由器环境修复&&rop技术分析

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 拿到路由器的固件后,第一时间肯定是去运行目标程序,一般是web服务 ...

  4. jQuery实现动态选中select

    // jquery实现动态选中select var active = $('.all_sla_title1 .active') var group_name = active.html(); var ...

  5. PRINCE2是什么意思?

    PRINCE2是一种长期以来公认的项目管理方法,在英国公共部门广泛应用,在私营企业界也发展成为事实上的应用方法. PRINCE2开发于1989年,是一种结构性的项目管理方法,其所有者OGC(英国商务部 ...

  6. win10_64位系统下安装ALM12.01(QC),笔者只在Win10平台上试过,大家也可以在win7的平台上试一下,一个道理!(Alpha)

    HP的ALM是一个非常全面的缺陷管理系统,但安装学习的非常的麻烦,以前学的是ALM,好久没用带今天想学习一下发现安装的非常的困难 !发现网上对ALM的系统安装的介绍非常少,也非常琐碎!今天就借着自己学 ...

  7. DOM介绍

    什么是DOM DOM:文档对象模型.DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构.目的其实就是为了能让js操作html元素而制定的一个规范. DOM就是由节点组成的. 解析过程 ...

  8. kotlin 1.3

    原文:https://www.oschina.net/news/101292/kotlin-1-3-released

  9. python笔记7-多线程threading之函数式

    前言 1.python环境3.62.threading模块系统自带 单线程 1.平常写的代码都是按顺序挨个执行的,就好比吃火锅和哼小曲这两个行为事件,定义成两个函数,执行的时候,是先吃火锅再哼小曲,这 ...

  10. Python实例---游戏人生[类的学习]

    # -*- coding:utf-8 -*- # ##################### 定义实现功能的类 ##################### class Person: def __in ...