广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >vue移动端项目缓存问题的示例分析
  • 604
分享到

vue移动端项目缓存问题的示例分析

2024-04-02 19:04:59 604人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关Vue移动端项目缓存问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先描述下问题场景:A页面->B页面->C页面。假设A页面是列

这篇文章给大家分享的是有关Vue移动端项目缓存问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

先描述下问题场景:A页面->B页面->C页面。假设A页面是列表页面,B页面是列表详情页面,C页面是操作改变B页面的一些东西,进行提交类似的操作。A页面进入B页面,应该根据不同的列表item显示不一样的详情,从B进入C,也应该根据item的标识比如ID展示不一样的内容,在C页面操作后,返回B页面,B页面数据发生变化。这个时候会有两种情况:

  • C页面操作数据后返回B页面,B页面对应数据应该发生变化。

  • C页面直接点击左上角箭头返回,B页面对应数据不应该发生变化。继续返回A列表页面,换一条数据,继续进入B页面,B页面展示不同内容,进入C页面,C页面刷新展示不同内容

另一种情况发生在写邮件的页面中,添加收件人,选人之后,继续添加,之前添加的联系人应该存在。但是从写邮件页面返回邮件列表再次进入写邮件页面,之前添加过的联系人数据就不应该存在了,这里就涉及到如何处理缓存,何时使用缓存,何时清除缓存的问题了。

目前项目整体结构如下:

<template>
 <div id="app">
  <keep-alive>
   <router-view v-if="$route.meta.keepAlive"></router-view>
  </keep-alive>
  <router-view v-if="!$route.meta.keepAlive"></router-view>
 </div>
</template>

虽然官方提供了include,exclude,可以让我们决定哪些组件使用缓存,哪些不使用缓存,但是并没有解决我们想动态使用缓存的目的,目前我的项目使用了如下两种方式处理缓存:

方式一 ,使用是否使用缓存标识

在路由文件router.js里给每个路由添加meta信息,标识是否使用缓存。

meta: {
  isUseCache: false,//不使用缓存
  keepAlive: true
}

使用方式:

A->B,B不能缓存;B->A,A缓存。

(1)A页面:

beforeRouteLeave(to, from, next) {
 // 设置下一个路由的 meta
 if(to.path=='/B'){
  to.meta.isUseCache = false;
 }
 next();
},
activated(){
  if(!this.$route.meta.isUseCache){
    this.getData();
  }
}

(2) B页面

beforeRouteLeave(to, from, next) {
 // 设置下一个路由的 meta
 if(to.path=='/A'){
  to.meta.isUseCache = true;
 }
 next();
},
activated(){
  if(!this.$route.meta.isUseCache){
    this.getData();
  }
}

方式二,强制清除缓存。

这种方式是从网上找的一种方式,使用了vue内部组件之后,不在支持动态销毁组件,缓存一直存在,只能从源头上下手,清掉缓存。

export const removeCatch = {
 beforeRouteLeave:function(to, from, next){
  if (from && from.meta.rank && to.meta.rank && from.meta.rank>to.meta.rank)
   {//此处判断是如果返回上一层,你可以根据自己的业务更改此处的判断逻辑,酌情决定是否摧毁本层缓存。
     if (this.$vnode && this.$vnode.data.keepAlive)
     {
       if (this.$vnode.parent && this.$vnode.parent.componentInstance && this.$vnode.parent.componentInstance.cache)
       {
         if (this.$vnode.componentOptions)
         {
           var key = this.$vnode.key == null
                 ? this.$vnode.componentOptions.Ctor.cid + (this.$vnode.componentOptions.tag ? `::${this.$vnode.componentOptions.tag}` : '')
                 : this.$vnode.key;
           var cache = this.$vnode.parent.componentInstance.cache;
           var keys = this.$vnode.parent.componentInstance.keys;
           if (cache[key])
           {
             if (keys.length) {
               var index = keys.indexOf(key);
               if (index > -1) {
                 keys.splice(index, 1);
               }
             }
             delete cache[key];
           }
         }
       }
     }
     this.$destroy();
   }
   next();
 }
};

在需要清掉缓存的页面混合引入该js即可。

感谢各位的阅读!关于“vue移动端项目缓存问题的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: vue移动端项目缓存问题的示例分析

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue移动端项目缓存问题的示例分析
    这篇文章给大家分享的是有关vue移动端项目缓存问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先描述下问题场景:A页面->B页面->C页面。假设A页面是列...
    99+
    2022-10-19
  • vue移动端项目代码拆分的示例分析
    这篇文章给大家分享的是有关vue移动端项目代码拆分的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先代码拆分应该保证本地开发的时候只有一套代码,提取所有公共页面,并且分...
    99+
    2022-10-19
  • vue移动端项目中如何实现页面缓存的示例代码
    背景 在移动端中,页面跳转之间的缓存是必备的一个需求。 例如:首页=>列表页=>详情页。 从首页进入列表页,列表页需要刷新,而从详情页返回列表页,列表页则需要保持页面缓...
    99+
    2022-11-12
  • Redis缓存问题的示例分析
    这篇文章给大家分享的是有关Redis缓存问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Redis缓存的应用在我们的实际业务场景中,Redis 一般和其他数据库搭...
    99+
    2022-10-19
  • vue服务端渲染缓存的示例分析
    这篇文章给大家分享的是有关vue服务端渲染缓存的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。服务端渲染简介服务端渲染不是一个新的技术;在 Web 最初的时候,页面就是通...
    99+
    2022-10-19
  • vue中移动端适配的示例分析
    小编给大家分享一下vue中移动端适配的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、方法一:rem 布局在主入口:i...
    99+
    2022-10-19
  • IE8/IE9下Ajax缓存问题的示例分析
    这篇文章主要为大家展示了“IE8/IE9下Ajax缓存问题的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“IE8/IE9下Ajax缓存问题的示例分析”这...
    99+
    2022-10-19
  • vue中移动端自适应的示例分析
    这篇文章给大家分享的是有关vue中移动端自适应的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方案1:直接引入js  (自己 写的动态改变fontsize的js...
    99+
    2022-10-19
  • vue-cli@2.x项目迁移日志的示例分析
    这篇文章给大家分享的是有关vue-cli@2.x项目迁移日志的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue-cli@2.x项目迁移日志虽然 vue-cli@3 早...
    99+
    2022-10-19
  • node vue项目开发之前后端分离的示例分析
    这篇文章主要介绍node vue项目开发之前后端分离的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!node vue项目开发最近看了近一周的vue开发,有诸多感触,我之前接触...
    99+
    2022-10-19
  • vue项目前端错误收集之sentry的示例分析
    这篇文章主要介绍vue项目前端错误收集之sentry的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!sentry简介Sentry 是一个开源的错误追踪工具,可以帮助开发人员实...
    99+
    2022-10-19
  • vue服务端渲染页面缓存和组件缓存的示例分析
    这篇文章将为大家详细讲解有关vue服务端渲染页面缓存和组件缓存的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue缓存分为页面缓存、组建缓存、接口缓存,这里我主...
    99+
    2022-10-19
  • react-native源码图片缓存问题的示例分析
    小编给大家分享一下react-native源码图片缓存问题的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为xcode模...
    99+
    2022-10-19
  • vue-cli 2.9.1中webpack存在问题的示例分析
    这篇文章主要为大家展示了“vue-cli 2.9.1中webpack存在问题的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-cli 2.9.1中...
    99+
    2022-10-19
  • vue项目环境搭建 启动 移植操作示例及目录结构分析
    目录项目搭建项目创建项目启动停止项目目录结构分析全局脚本配置index.html详细介绍main.js入口文件详细App.vue跟组件介绍router-index.js 路由介绍项目...
    99+
    2022-11-13
  • vue自动路由之单页面项目的示例分析
    这篇文章给大家分享的是有关vue自动路由之单页面项目的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这是一个什么项目?答:这是一个单页面的vue.js项目,主要为了实现在...
    99+
    2022-10-19
  • 如何解决基于Vue/React项目移动端适配的问题
    这篇文章给大家分享的是有关如何解决基于Vue/React项目移动端适配的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。px2rem或postcss-px2rem在移动端中,为...
    99+
    2022-10-19
  • vue.js移动端配置flexible.js及注意事项的示例分析
    这篇文章主要为大家展示了“vue.js移动端配置flexible.js及注意事项的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue.js移动端配置f...
    99+
    2022-10-19
  • 移动端滑动切换组件封装 vue-swiper-router的示例分析
    这篇文章主要介绍移动端滑动切换组件封装 vue-swiper-router的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体代码如下所述:<strong>组件部...
    99+
    2022-10-19
  • vue项目中使用lib-flexible如何解决移动端适配的问题
    这篇文章将为大家详细讲解有关vue项目中使用lib-flexible如何解决移动端适配的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。第一部分:项目中引入lib-fl...
    99+
    2022-10-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作