文章导航
Vue.js 的数据双向绑定和html5 localStorage 的数据存储功能实现一个自己的工作列表
vuejs+localStorage demo地址原始方式未组件化
vuejs+localStorage demo地址webpack打包组件化
vuejs+localStorage demo地址webpack打包组件化加删除功能
vuejs+localStorage demo原始方式未组件化加删除功能
vuejs-2.0+localStorage demo地址webpack打包组件化加删除功能
vuejs-2.0+localStorage demo原始方式未组件化加删除功能
vuejs-2.0+localStorage demo原始方式删除位移bug-add动画
功能需求分析
(1)input输入可以生成对应的列表内容(初始化为未完成)
(2)点击每个列表内容切换该工作计划的状态为完成还是未完成
(3)localStorage来存储我们输入的工作计划内容同步
效果
废话不多说上代码
css部分这个不用多说就没贴代码,看代码就看js部分和html结构部分,但是css中有个牛逼的属性见下css-code
v-cloak 作用在渲染的时候不出现,解析后再出现结果
1 | [v-cloak]{ |
html结构部分
1 | <div id="demo" class="reminder-container" v-cloak> |
1 | var KEY = "workPlan"; |
ps:注意点有以下几个部分
初始数据items: Store.fetch() 从localStorage 中读取若有v-for 循环 没有则为空数组
1.自己实现一个Store函数来操作输入数据
2.watch 监听数据改变 deep: true必须为这个 如果你有兴趣可以改为false试试 看看什么效果
3.toggleFinshed 函数切换状态 newAdd 增加新列 必须重新清空一次
写的可能很粗糙,文笔不好将就看吧
2016-10-25 vuejs-2.0 重写vue-to-do-listvuejs-2.0+localStorage demo地址webpack打包组件化加删除功能
有下面几个问题需要解决(对比以前的几个demo语法)
变动的地方
main.js
vue 2.0.xxx
import Vue from ‘vue’
import App from ‘./App’
/ eslint-disable no-new /
new Vue({
el: ‘#app’,
template: ‘
components: { App }
})
// vue 1.0.xxx
// import Vue from ‘vue’
// import App from ‘./App’
//
// / eslint-disable no-new /
// new Vue({
// el: ‘body’,
// components: { App }
// })
1.v-for item 添加索引
2.删除通过索引删除而不是通过数组对象
vue.js 1.0.xx 语法
1 | deleteClick (item) { |
1 | <li v-for='item in items'> |
vue.js 2.0.xx 语法 废弃的$remove
用 Array.prototype.splice 代替,例如:
methods: {
removeTodo: function (todo) {
var index = this.todos.indexOf(todo)
this.todos.splice(index, 1)
}
}
或者更好的方法,直接给除去的方法一个index参数:
methods: {
removeTodo: function (index) {
this.todos.splice(index, 1)
}
}
1 | deleteClick (index) { |
1 | <li v-for='(item, index) in items'> |
##全选反选
1 | change () { |
版权声明: 本文章采用 知识共享署名 2.5 中国大陆许可协议 进行许可,欢迎转载,但转载请注明来自李立冬博客,并保持转载后文章内容的完整。本人保留所有版权相关权利。
本文链接:http://www.lilidong.cn/2016/09/20/vuejs-localStorage实现工作计划to-do-list/