Vue+element实现todo(六—本地存储)

还有一个问题,现在只要我们一刷新浏览器,所有item 都没了,我们可以使用浏览器的 LocalStorage 来实现数据的持续性存储。这样一来只要用户不删除浏览器缓存,我们的 item 会一直在,当然也可以使用数据库使数据更持久存储,在这里我们用 LocalStorage。
首先来定义一个对象,用于 LocalStorage 存储和获取 item 的相关操作


image.png

STORAGE_KEY 用来区分存储到 LocalStorage 的内容,因为 LocalStorage 中可能存储其它应用的数据,使用这个 key 用于区分。

todoStorage 是一个 JavaScript 的对象,它的属性是两个方法。save 方法把 list 转为 JSON 格式,然后将序列化的数据存入对应 key 为 STORAGE_KEY 的本地存储中,fetch 方法则从对应 STORAGE_KEY 的本地存储将之前存入的 todo 数据取出并反序列化。注意这里还为 todoStorage 对象绑定了一个 uid 属性,它的作用是后续添加 todo 时,用于确定新添加 todo 的 id。
因此,每当用户打开页面时,我们因为去 LocalStorage fetch 一下存储的数据


image.png

另外,一旦添加了新的 todo,我们应该及时将新的 todo 存到本地,防止关闭页面而导致数据丢失,可以使用 Vue 的 watch 来监听用户添加item的事件,即监视 this.list 的变化,一旦改变,立即修改本地存储的list 的数据

同时,当添加 todo 时,新的 todo id 不能是从 0 开始了,而应该从已有 todoStorage.uid 开始


image.png

奶思!现在可以随便刷新了~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 本文是我今年2月份发表在博客园上的文章,平常做项目时便温故一下。私以为,只有通过实践才能将知识真正地内化和吸收,再...
    一个笑点低的妹纸阅读 870评论 0 2
  •   支持离线 Web 应用开发是 HTML5 的另一个重点。   所谓离线 Web 应用,就是在设备不能上网的情况...
    霜天晓阅读 1,103评论 0 2
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,660评论 0 17
  • 本文介绍本地数据存储的选型。简单总结一些查询到的关于本地数据存储的技术。 控制台展示前端存储 Chrome: 前端...
    谢大见阅读 9,152评论 1 8