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创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
Jun 28 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
Jun 20 Javascript
jquery的live使用注意事项
Feb 18 Javascript
创建js对象和js类的方法汇总
Dec 24 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
Mar 21 Javascript
深入浅析javascript立即执行函数
Oct 23 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
Aug 03 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 Javascript
详解微信小程序中组件通讯
Oct 30 Javascript
Postman环境变量全局变量使用方法详解
Aug 13 Javascript
javascript实现下拉菜单效果
Feb 09 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
解析php中反射的应用
2013/06/18 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
python实现代码行数统计示例分享
2014/02/10 Python
python处理圆角图片、圆形图片的例子
2014/04/25 Python
Python中获取对象信息的方法
2015/04/27 Python
浅谈Python NLP入门教程
2017/12/25 Python
Python shutil模块用法实例分析
2019/10/02 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
python绘制玫瑰的实现代码
2020/03/02 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
python requests库的使用
2021/01/06 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
六查六看自查材料
2014/02/17 职场文书
启动仪式策划方案
2014/06/14 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
2014年科普工作总结
2014/12/06 职场文书
我的1919观后感
2015/06/03 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL