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定义类和对象的几种方式
Nov 09 Javascript
JQuery拖拽元素改变大小尺寸实现代码
Dec 10 Javascript
js判断样式className同时增加class或删除class
Jan 30 Javascript
jQuery根据纬度经度查看地图处理程序
May 08 Javascript
使用原生JS实现弹出层特效
Dec 22 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
Feb 23 Javascript
Javascript中setTimeOut和setInterval的定时器用法
Jun 12 Javascript
JavaScript设计模式初探
Jan 07 Javascript
详解Node.js中的事件机制
Sep 22 Javascript
微信小程序支付及退款流程详解
Nov 30 Javascript
Node 升级到最新稳定版的方法分享
May 17 Javascript
Vue Components 数字键盘的实现
Sep 18 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
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
PHP运行模式汇总
2016/11/06 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
KMP算法精解及其Python版的代码示例
2016/06/01 Python
Python制作简易注册登录系统
2016/12/15 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
智能钱包:Ekster
2019/11/21 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
三八妇女节慰问信
2015/02/14 职场文书
2015年纪委工作总结
2015/05/13 职场文书
Python3的进程和线程你了解吗
2022/03/16 Python