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 相关文章推荐
JS getStyle获取最终样式函数代码
Apr 01 Javascript
菜鸟学习JavaScript小实验之函数引用
Nov 17 Javascript
js解析与序列化json数据(二)序列化探讨
Feb 01 Javascript
js实现正方形颜色从下往上升的效果
Aug 04 Javascript
JS 对象属性相关(检查属性、枚举属性等)
Apr 05 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
在js中实现邮箱格式的验证方法(推荐)
Oct 24 Javascript
jquery实现折叠菜单效果【推荐】
Mar 08 Javascript
Vue.js 2.0学习教程之从基础到组件详解
Apr 24 Javascript
js实现音乐播放控制条
Sep 09 Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 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
虫族 Zerg 历史背景
2020/03/14 星际争霸
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
js 可拖动列表实现代码
2011/12/13 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
python中黄金分割法实现方法
2015/05/06 Python
在Django的模板中使用认证数据的方法
2015/07/23 Python
python文件的md5加密方法
2016/04/06 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
详解Python多线程下的list
2020/07/03 Python
Python绘制组合图的示例
2020/09/18 Python
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
COSETTE官网:奢华,每天
2020/03/22 全球购物
2014中考励志标语
2014/06/05 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
行政申诉状范文
2015/05/20 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技