文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Vue怎么缓存

2023-06-09 09:58

关注

本篇内容介绍了“Vue怎么缓存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Vue的优点

Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快等优势,Vue中页面使用的是局部刷新,不用每次跳转页面都要请求所有数据和dom,可以大大提升访问速度和用户体验。

最近新做了个需求“前端缓存”

需求背景:解决表单高频率重复填报问题,要求打开页面自动填充上次录入的数据,数据存储期限为一周(7天有效期)。
说起缓存首先想到的则是 localstorage、sessionStorage

sessionStorage

也称会话缓存,当用户关闭浏览器窗口后,数据就会被删除;

sessionStorage.setItem("key","value");//存储sessionStorage.getItems("key");//按可以进行取值sessionStorage.removeItems("key");//按key单个删除sessionStorage.clear();//删除全部数据sessionStorage.length;//获取数据的数量sessionStorage.valueOf();//获取全部值

localstorage

储存的数据没有时间限制,只要不删除,都会存在

localstorage.setItem("key","value");//保存数据localstorage.getItem("key");//读取数据localstorage.removeItem("key",);//删除单个数据localstorage.clear();//删除所有数据localstorage.key(index);//得到某个索引的keykey和value都必须为字符串,web Storage的API只能操作字符串

由于sessionStorage浏览器关闭窗口数据会被清空,所以对我所要开发的需求不适用。如果只考虑这两种方案的话,这么看来localstorage相对来说会比较合适,但是如果使用localstorage存储并且设置时效的话从代码层面来看会比较麻烦。

localstorage具体实现思路

1. 存储数据时加上时间戳

当数据较大时,可以利用localstorage,存数据时候写入一个时间,获取的时候再与当前时间进行比较

在项目开发中,我们可以写一个公用的方法来进行存储的时候加上时间戳

  export function setLocalStorageAndTime (key, value) {  window.localStorage.setItem(key, JSON.stringify({ data: value, time: new Date().getTime() }))  }

项目中应用

  有数据再进行存储 setLocalStorageAndTime('XXX', {name: 'XXX'})

获取数据时与当前时间进行比较

export function getLocalStorageAndTime (key, exp = 86400000) { // 获取数据 let data = window.localStorage.getItem(key) if (!data) return null let dataObj = JSON.parse(data) // 与过期时间比较 if (new Date().getTime() - dataObj.time > exp) {  // 过期删除返回null  removeLocalStorage(key)  console.log('信息已过期')  return null } else {  return dataObj.data }}

程序员最大的特点就是懒,有插件就绝不会放过,能CV就绝对不手敲。由于写起来太繁琐,所以果断放弃使用localstorage,在另寻更简单方便的方法。通过同事的引荐最终选择了Vue.ls,那就来介绍介绍 Vue.ls吧。

Vue.ls

一个Vue封装的本地储存的方法。Vue插件,用于从Vue上下文中使用本地Storage,会话Storage和内存Storage,简单易上手,Api说明也是比较全面。

安装

NPM

npm install vue-ls --save

Yarn

yarn add vue-ls

使用

Vue-ls Storage API
import Storage from 'vue-ls'; options = { namespace: 'vuejs__', // key键前缀 name: 'ls', // 命名Vue变量.[ls]或this.[$ls], storage: 'local', // 存储名称: session, local, memory}; Vue.use(Storage, options);// 或 Vue.use(Storage); new Vue({  el: '#app',  mounted: function() {    Vue.ls.set('foo', 'boo');    // 设置有效期    Vue.ls.set('foo', 'boo', 60 * 60 * 1000); //有效1小时    Vue.ls.get('foo');    Vue.ls.get('boo', 10); // 如果没有设置boo返回默认值10         let callback = (val, oldVal, uri) => {     console.log('localStorage change', val);    }         Vue.ls.on('foo', callback) //侦查改变foo键并触发回调     Vue.ls.off('foo', callback) //不侦查        Vue.ls.remove('foo'); // 移除  }});

Global(全局)

Vue.ls

Context(上下文)

this.$ls

API 说明

Vue.ls.get(name, def)

返回storage中 name值。在返回之前,内部解析JSON中的值

def: 默认null, 如果为设置则返回 name.
Vue.ls.set(name, value, expire)

在storage设置 name的 value.并将 value转化为 JSON

expire: 默认为 null, name有效时间以毫秒为单位

Vue.ls.remove(name)

从 storage中移除 name. 成功移除 true, 否则返回false.

Vue.ls.clear()

清除storage.

Vue.ls.on(name, callback)

持续监听 name在其他标签上的更改,更改时触发 callback, 传递以下参数:

Vue.ls.off(name, callback)

删除以前的侦听器 Vue.ls.on(name, callback)

实操

Vue怎么缓存

存储:键值对形式,最后一个参数为有效期

Vue怎么缓存

取值:参数为存进去的键

查看:存储的数据可在localstorage中查看

总结

localstorage(本地存储)则以文件的方式存储在本地,永久保存;sessionstorage( 会话存储 ) ,临时保存;Vue.ls是一个Vue封装的本地储存的方法,简单方便易上手。localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理。

“Vue怎么缓存”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯