返回顶部
首页 > 资讯 > 精选 >Vuex和前端缓存怎么整合
  • 217
分享到

Vuex和前端缓存怎么整合

2023-07-04 12:07:04 217人浏览 泡泡鱼
摘要

今天小编给大家分享一下Vuex和前端缓存怎么整合的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。如何存放或更新缓存?缓存数据来

今天小编给大家分享一下Vuex和前端缓存怎么整合的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

如何存放或更新缓存?

缓存数据来源是预知的,我们可以预先定义哪些 mutation 是缓存相关的。

我们期望这个过程更自然一点,通过某种变化自动映射,使以后不管缓存类别增加还是减少都能修改极少的代码来应对变化。

Vuex的插件可以拦截 mutations,借助这个机制,我们可以制定一种策略化的规则。

可以规定,所有需要更新缓存的 mutationType 都要符合这种格式:module-type-cacheKey,非缓存的 mutationType 格式为 module-type。

那么就可以拦截 mutation,去做我们想做的事了:

store.subscribe(({ type, payload }) => { const cacheKey = type.split('-')[2] if (cacheKey) {  Cache.save(cacheKey, payload) }})

如何从缓存取数据避免请求?

只需要在缓存相关的 action 中加入缓存判断。

actionfetchData({commit}) { const cacheData = Cache.get(cacheKey) if(!cacheData) {  api.getData().then(data => {   commit(mutationType, data)  }) } else {  commit(mutationType, cacheData) }}

设计优化

以上的确已经足够完成缓存 读取 --> 更新 的工作了。但试想一下将来某个其他数据类别要做缓存,我们就要把上面的代码格式再搬一遍。

即:把新的需要缓存的数据类别对应的 mutationType 加 cacheKey 后缀,把获取数据的 action 中加缓存判断。

虽然实际编码中也没有多大的工作量,但感觉还不是最好的开发体验。

action优化

action 中的痛点是:每次都需要重复写缓存判断。可以把这个判断过程拿出来放到一个大家都能访问到的公共的地方,且最好是与 Vuex 契合的。

Vuex 支持 action 相互调用,我们可以设置一个单独的 action 用来提交。

commitAction({ commit }, mutationType, getData) { const cacheKey = mutationType.split('-')[2] const cacheData = Cache.get(cacheKey || '') if(!cacheData) {  getData().then(data => {   commit(mutationType, data)  }) } else {  commit(mutationType, cacheData) }},fetchData({ dispatch }) { dispatch('commitAction', mutationType, Api.getData)}

不管是否需要缓存最终都走同一个 action 去提交,由这个 action 去做决策。

mutation优化

mutation 的痛点在于:加后缀啊!加后缀啊!!

如果一个数据的相关逻辑复杂,可能对应很多个 mutationType,每个都需要:加后缀!

要是代码能自动识别需要走缓存的 mutationType 就完美了!

mutationType 默认的格式为 module-type,假如业务中一个 module 对应一个数据类别,我们就可以基于 module 作缓存识别。

cacheConfig.jsexport default { module1: 'key1', module2: 'key2', //...}
actioncommitAction({ commit }, mutationType, getData) { const module = mutationType.split('-')[0] const cacheKey = CacheConfig[module] || '' const cacheData = Cache.get(cacheKey) if(!cacheData) {  getData().then(data => {   commit(mutationType, data)  }) } else {  commit(mutationType, cacheData) }},fetchData({ dispatch }) { dispatch('commitAction', mutationType, Api.getData)}interceptorstore.subscribe(({ type, payload }) => { const module = type.split('-')[0] const cacheKey = CacheConfig[module] if (cacheKey) {  Cache.save(cacheKey, payload) }})

当我们需要新增或减少缓存数据,只需要去 cacheConfig 中增加或减少一项模块配置。

以上就是“Vuex和前端缓存怎么整合”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Vuex和前端缓存怎么整合

本文链接: https://lsjlt.com/news/344765.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vuex和前端缓存怎么整合
    今天小编给大家分享一下Vuex和前端缓存怎么整合的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。如何存放或更新缓存?缓存数据来...
    99+
    2023-07-04
  • Vuex和前端缓存整合的示例分析
    这篇文章主要介绍了Vuex和前端缓存整合的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如何存放或更新缓存?缓存数据来源是预知的,我...
    99+
    2024-04-02
  • Vue前端怎么整合ElementUi
    这篇文章主要讲解了“Vue前端怎么整合ElementUi”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue前端怎么整合ElementUi”吧!Vue前端整合Element UiElemen...
    99+
    2023-07-02
  • SpringBoot怎么整合Redis缓存
    SpringBoot怎么整合Redis缓存?针对这个问题,今天小编总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。1、引入缓存依赖<dependency> &...
    99+
    2024-04-02
  • SpringBoot怎样整合redis的缓存?
    这篇文章为大家带来有关SpringBoot整合redis缓存的详细介绍。大部分知识点都是大家经常用到的,为此分享给大家做个参考。一起跟随小编过来看看吧。开启远程访问:找到redis中的redis.conf文...
    99+
    2024-04-02
  • SpringBoot怎么整合Redis缓存验证码
    今天小编给大家分享一下SpringBoot怎么整合Redis缓存验证码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、简介...
    99+
    2023-07-02
  • Vue怎么实现前端页面缓存
    这篇“Vue怎么实现前端页面缓存”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue怎么实现前端页面缓存”文章吧。Vue前端...
    99+
    2023-07-02
  • SpringBoot怎么整合Spring Cache实现Redis缓存
    今天小编给大家分享一下SpringBoot怎么整合Spring Cache实现Redis缓存的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2023-07-02
  • gitee前端缓存怎么解决?方法分享
    随着互联网技术的不断发展,前端开发已经成为了互联网时代不可或缺的一部分。而Gitee作为国内比较知名和常用的代码托管平台,也越来越受到前端开发者的关注。在使用Gitee进行前端开发的过程中,前端缓存问题是一个需要注意的地方。那么,Gitee...
    99+
    2023-10-22
  • vue项目keepAlive配合vuex动态怎么设置路由缓存
    这篇文章主要介绍“vue项目keepAlive配合vuex动态怎么设置路由缓存”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue项目keepAlive配合vuex动态怎么设置路由缓存”文章能帮助大...
    99+
    2023-06-30
  • SpringBoot怎么整合Redis实现热点数据缓存
    本篇内容主要讲解“SpringBoot怎么整合Redis实现热点数据缓存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么整合Redis实现热点数据缓存”吧!我们以IDEA ...
    99+
    2023-07-05
  • SpringBoot怎么整合WebSocket实现后端向前端发送消息
    这篇文章主要讲解了“SpringBoot怎么整合WebSocket实现后端向前端发送消息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么整合WebSocket实现后端向...
    99+
    2023-07-05
  • SpringBoot怎么整合Redis实现高并发数据缓存
    这篇文章主要讲解了“SpringBoot怎么整合Redis实现高并发数据缓存”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么整合Redis实现高并发数据缓存”吧!什么是...
    99+
    2023-07-05
  • SpringBoot中怎么整合Ehcache实现热点数据缓存
    本篇内容介绍了“SpringBoot中怎么整合Ehcache实现热点数据缓存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、简介EhCac...
    99+
    2023-07-06
  • 前端api请求缓存的方法是什么
    这篇文章主要介绍“前端api请求缓存的方法是什么”,在日常操作中,相信很多人在前端api请求缓存的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”前端api请求缓存的...
    99+
    2024-04-02
  • MySQL怎么把整个表缓存到内存
    在MySQL中,可以使用查询缓存来缓存查询结果,但是无法直接将整个表缓存到内存中。不过,可以通过一些优化措施来尽量减少对硬盘的IO操...
    99+
    2024-04-09
    MySQL
  • redis怎么缓存整个数据库
    要将整个数据库缓存到Redis中,可以使用Redis的持久化机制。Redis提供了两种持久化方法:RDB(Redis Databas...
    99+
    2023-08-23
    redis 数据库
  • 你适合做web前端吗?web前端发展前景怎么样?
    当我们决定学习一个技能的时候,首先会考虑到零基础学不学的会,这个技术的前景怎么样,赚钱多吗?别着急,今天小编就来为你揭开web前端的神秘面纱,认真看完。前端开发是什么?首先,了解前端开发Web前端开发是从网页制作演变而来的,名称上有很明显的...
    99+
    2023-06-03
  • node强缓存和协商缓存怎么实现
    这篇文章主要介绍了node强缓存和协商缓存怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node强缓存和协商缓存怎么实现文章都会有所收获,下面我们一起来看看吧。什么是浏览器缓存浏览器缓存(http 缓存...
    99+
    2023-07-02
  • SpringBoot怎么整合Minio文件存储
    这篇“SpringBoot怎么整合Minio文件存储”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎么整...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作