Vue使用localStorage存储数据的方法


Posted in Javascript onMay 27, 2019

本文实例为大家分享了Vue使用localStorage存储数据的具体代码,供大家参考,具体内容如下

通过下面这个案例来了解localStorage的基本使用方法。

Vue使用localStorage存储数据的方法

输入评论人、评论内容,点击发表评论,评论数据将保存到localStorage中,并刷新评论列表。

1.先组织出一个最新评论数据对象 

var comment = {id:Date.now(), user:this.user, content:this.content}

2. 把得到的评论对象,保存到localStorage中 

1.localStorage只支持存字符串数据,保存先调用JSON.stringify转为字符串

2.在保存最新的评论数据之前,要先从localStorage获取到之前的评论数据(string)转换为一个数组对象,然后把最新的评论,push到这个数组

3.如果获取到的localStorage中的评论字符串为空,不存在,则可以返回一个'[]'让JSON.parse去转换

4.把最新的评论列表数组,再次调用JOSN.stringify转为数组字符串,然后调用localStorage.setItem()保存

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="../css/bootstrap.css" rel="external nofollow" >
 </head>
<body>
 <div id='app'>
  <cmt-box @func="loadComments"></cmt-box>
 
  <ul class="list-group">
   <li class="list-group-item" v-for="item in list" :key="item.id">
    <span class="badge">评论人:{{item.user}}</span>
     {{item.content}}
   </li>
  </ul>
 </div>
 <template id="tmp1">
  <div>
   <div class="form-group">
    <label>评论人:</label>
    <input type="text" v-model="user" class="form-control">
   </div>
   <div class="form-group">
    <label>评论内容:</label>
    <textarea class="form-control" v-model="content"></textarea>
   </div>
   <div class="form-group">
    <input type="button" value="发表评论" class="btn btn-primary" @click="postComment">
   </div>
  </div>
 </template>
</body>
<script src="../lib/vue.js"></script>
<script>
 var conmmentBox={
  template:'#tmp1',
  data(){
   return{
    user:'',
    content:''
   }
  },
  methods:{
   postComment(){
    //1.评论数据存到哪里去,存放到了localStorage中
    //2.先组织出一个最新评论数据对象
    //3.想办法,把第二步得到的评论对象,保持到localStorage中】
    // 3.1 localStorage只支持存字符串数据,先调用JSON.stringify
    // 3.2 在保存最新的评论数据之前,要先从localStorage获取到之前的评论数据(string)转换为一个数组对象,然后把最新的评论,push到这个数组
    // 3.3 如果获取到的localStorage中的评论字符串为空,不存在,则可以返回一个'[]'让JSON.parse去转换
    // 3.4 把最新的评论列表数组,再次调用JOSN.stringify转为数组字符串,然后调用localStorage.setItem()
    var comment = {id:Date.now(), user:this.user, content:this.content}
    //从localStorage中获取所用的评论
    var list = JSON.parse(localStorage.getItem("cmts") || '[]')
    list.unshift(comment)
    //重新保存最新的评论数据
    localStorage.setItem('cmts',JSON.stringify(list))
    this.user = this.content = ''
    this.$emit('func')
   }
  }
  
 }
 var vm = new Vue({
  el:'#app',
  data:{
   list:[]
  },
  methods:{
   //从本地的localStorage中,加载评论列表
   loadComments(){
    var list = JSON.parse(localStorage.getItem("cmts") || '[]')
    this.list = list
   }
  },
  created(){
   this.loadComments()
  },
  components:{
   'cmt-box':conmmentBox
  }
  
 })
</script>
</html>

可以打开开发者模式查看localStorage保存的数据

Vue使用localStorage存储数据的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript实现仿Windows关机效果
Mar 10 Javascript
Javascript 自定义类型方法小结
Mar 02 Javascript
jQuery.fn和jQuery.prototype区别介绍
Oct 05 Javascript
各种常用的JS函数整理
Oct 25 Javascript
JS函数this的用法实例分析
Feb 05 Javascript
Three.js快速入门教程
Sep 09 Javascript
详解在Vue中通过自定义指令获取dom元素
Mar 04 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
Sep 21 Javascript
详解element-ui日期时间选择器的日期格式化问题
Apr 08 Javascript
微信小程序 调用微信授权窗口相关问题解决
Jul 25 Javascript
JSX在render函数中的应用详解
Sep 04 Javascript
Vue实现返回顶部按钮实例代码
Oct 21 Javascript
了解javascript中的Dom操作
May 27 #Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 #Javascript
vue cli3.0 引入eslint 结合vscode使用
May 27 #Javascript
深入浅出了解Node.js Streams
May 27 #Javascript
JavaScript怎样在删除前添加确认弹出框?
May 27 #Javascript
vue项目前端错误收集之sentry教程详解
May 27 #Javascript
了解javascript中变量及函数的提升
May 27 #Javascript
You might like
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
Laravel实现用户注册和登录
2015/01/23 PHP
php常用数组函数实例小结
2016/12/29 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
jquery使用经验小结
2015/05/20 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
Python下线程之间的共享和释放示例
2015/05/04 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
Python过滤序列元素的方法
2020/07/31 Python
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
秘书行业自我鉴定范文
2013/12/30 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
教师年度考核个人总结
2015/02/12 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
导游词之襄阳古城
2019/09/27 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL
Elasticsearch 数据类型及管理
2022/04/19 Python