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 相关文章推荐
判断是否输入完毕再激活提交按钮
Jun 26 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 Javascript
html组件不可输入(只读)同时任何组件都有效
Apr 01 Javascript
javascript中this的四种用法
May 11 Javascript
详解js的事件代理(委托)
Dec 22 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
Dec 28 Javascript
JavaScript通过filereader接口读取文件
May 10 Javascript
微信小程序实现滴滴导航tab切换效果
Jul 24 Javascript
JS集合set类的实现与使用方法示例
Feb 01 Javascript
Vue源码学习之关于对Array的数据侦听实现
Apr 23 Javascript
Jquery Fade用法详解
Nov 06 jQuery
小程序wx.getUserProfile接口的具体使用
Jun 02 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
模仿OSO的论坛(四)
2006/10/09 PHP
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
php之curl设置超时实例
2014/11/03 PHP
php导入模块文件分享
2015/03/17 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
Python中三元表达式的几种写法介绍
2019/03/04 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
JBL英国官网:JBL UK
2018/07/04 全球购物
校园歌手大赛策划书
2014/01/17 职场文书
护理专业自荐信范文
2014/02/26 职场文书
协会周年庆活动方案
2014/08/26 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
赢在中国观后感
2015/06/02 职场文书
《鲸》教学反思
2016/02/23 职场文书
python b站视频下载的五种版本
2021/05/27 Python
python中%格式表达式实例用法
2021/06/18 Python