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计算页面执行时间的函数
Dec 07 Javascript
jQuery温习篇 强大的JQuery选择器
Apr 24 Javascript
JQuery实现倒计时按钮具体方法
Nov 14 Javascript
Ajax使用原生态JS验证用户名是否存在
May 26 Javascript
JavaScript实现图像模糊化的方法实例
Jan 15 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
Vue.js中数据绑定的语法教程
Jun 02 Javascript
jQuery实现的页面详情展开收起功能示例
Jun 11 jQuery
angular6的table组件开发的实现示例
Dec 26 Javascript
Vue 中 a标签上href无法跳转的解决方式
Nov 12 Javascript
ES6字符串的扩展实例
Dec 21 Javascript
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
了解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 特殊字符处理函数
2008/09/05 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
PHP里的中文变量说明
2011/07/23 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
javascript hashtable实现代码
2009/10/13 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
对python中的高效迭代器函数详解
2018/10/18 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
实习自荐信
2013/10/13 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
大班幼儿评语大全
2014/04/30 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
预备党员党支部意见
2015/06/02 职场文书
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android