当前位置: 首页 > news >正文

前端对页面数据进行缓存

页面录入信息,退出且未提交状态下,前端对页面数据进行存储

前端做缓存,一般放在local、session和cookies里面,但是都有大小限制,如果页面东西多,比如有上传的图片、视频,浏览器会抛出一个QuotaExceededError错误。所以最后采用了vuex进行存储
思路:进入页面时,会请求接口获取数据,判断该条数据是否在vuex里面进行存储,如果有,将vuex中的值赋值给form,如果没有,将接口返回的值赋值给form。提交时,在vuex中清楚该数据。点击返回按钮时,在生命周期钩子beforeDestory中对页面数据进行存储
arrList:this.$store.state.cachedData //vuex 缓存的页面数据
form:{} // 页面v-model的数据
id:当前页面数据的唯一标识
 import { mapState, mapMutations } from "vuex";  computed: {...mapState(["cachedData"]),},
methods:{...mapMutations(["setCachedData"])
}
  beforeDestroy() {//有多条数据,根据唯一标识id进行存取和清除let dataToCache = {id: this.id,data: JSON.stringify(this.form),};const index = this.arrList.findIndex((item) => item.id == this.id);if (index != -1) {this.arrList[index] = dataToCache;} else {this.arrList.push(dataToCache);}this.setCachedData(this.arrList);},
mounted(){this.getPageDate()
},
methods:{getPageDate(){//都接口,获取当前页面数据,判断缓存中是否有该条数据const index = this.arrList.findIndex((item) => item.id == this.id);if (index !== -1) {this.form = JSON.parse(this.$store.state.cachedData[index].data);} else {this.form = res.data.list}},submit(){//走接口,提交成功时,进行清除const index = this.arrList.findIndex((item) => item.id == this.id);this.arrList.splice(index, 1);this.setCachedData(this.arrList);}
}

http://www.lryc.cn/news/508895.html

相关文章:

  • leetCode322.零钱兑换
  • jsp-servlet开发
  • 从零玩转CanMV-K230(7)-I2C例程
  • n阶Legendre多项式正交性的证明
  • HarmonyOS NEXT - Dialog 和完全自定义弹框
  • 内容与资讯API优质清单
  • 开源 JS PDF 库比较
  • AnaPico信号源在通信测试中的应用案例
  • 《智启新材:人工智能重塑分子结构设计蓝图》
  • 进阶岛-L2G5000
  • 单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
  • PaddlePaddle飞桨Linux系统Docker版安装
  • 一款基于.NET开发的简易高效的文件转换器
  • Spring Boot教程之三十一:入门 Web
  • 青少年编程与数学 02-004 Go语言Web编程 20课题、单元测试
  • 概率论 期末 笔记
  • Typesense:开源的高速搜索引擎
  • 【vue】圆环呼吸灯闪烁效果(模拟扭蛋机出口处灯光)
  • 飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器
  • 《信管通低代码信息管理系统开发平台》Linux环境安装说明
  • 基于物联网的车辆定位和防盗报警系统(论文+源码)
  • 京东零售数据可视化平台产品实践与思考
  • Vue中使用a标签下载静态资源文件(比如excel、pdf等),纯前端操作
  • ensp 基于EASY IP的公司出口链路配置
  • 方正畅享全媒体采编系统reportCenter.do接口SQL注入漏洞复现 [附POC]
  • 零知识证明:区块链隐私保护的变革力量
  • 解决:el-select可输入时失焦会失去输入框中值
  • ollama-webui - Ollama的ChatGPT 风格的 Web 界面
  • 「下载」智慧产业园区-数字孪生建设解决方案:重构产业全景图,打造虚实结合的园区数字化底座
  • 使用Grafana中按钮插件实现收发HTTP请求