【vue】keep-alive清除缓存最简单暴力的方法

2023-11-01

项目场景:

场景一
使用vue开发移动端,
有ABC三个页面,点击A跳转到B,点B跳转到C;
点C返回B,点B返回A。


场景二
场景一实现之后,会出现这样一个问题:
先从A跳转到B,B页面会被缓存下来,
当再从D跳转到B时,B页面并不会更新。


解决方案:

场景一可能会出下这个问题:从A-B-C正常,但当从B返回A时,会报错,这是因为从B返回A时,传递的参数并不是从A到B的参数,所以需要将B组件或页面缓存起来,就可以解决这个问题,缓存可以用vue’中的keep-alive标签,使用方法如下:

1,加上判断条件,如果keepAlive为true,那么就缓存该组件,也就是用keep-alive包裹它
如果为false,那么就不包裹

    <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>

2,通过设置keepAlive的true或false来决定该组件是否缓存

const routes = [
  {
    path: "/",
    name: "Home",
    component: () => import("@/views"),
    meta: {
      keepAlive: false,
    },
  },
  {
    path: "/list",
    name: "List",
    component: () => import("@/views/list"),
    meta: {
      keepAlive: true,
    },
  },
];

场景一目前已经实现,但之后又遇到场景二的问题,在网上搜索到的各种解决方法都有些复杂,所以我用了最简单粗暴的方法,就是每次返回A页面的时候,直接让A页面刷新,因为这个项目不大,一共也就十来个页面,所以这种方式的副作用对这个项目来说基本不存在影响,代码如下:
监听路由跳转,但监听到跳往的页面是home页时,直接刷新

<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>

<script>
export default {
  watch: {
    $route(to, from) {
      if (to.name === "Home" && from.name) {
        this.$router.go(0);
      }
    },
  },
};
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【vue】keep-alive清除缓存最简单暴力的方法 的相关文章

  • 如何通过单击图像预览上的“x”从文件输入中删除图像?

    我目前有一个文件输入 一旦用户上传图像 就会显示图像预览 在图像预览上 有一个 x 可以从列表中删除图像预览 单击此 x 后 有什么方法可以从输入中的文件集中删除图像吗
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • Node js 使用中间件重定向进行过多重定向

    在我的 Node js 应用程序 我使用的是express 4 x 中 我想检查用户是否已登录 如果用户未登录 我想重定向到我的登录页面 然后我在中间件中这样做 服务器 js app use function req res next if
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • 类型“typeof import("/home/kartik/Desktop/Ecommerce/ecommerce/node_modules/firebase/index")”上不存在属性“auth”。 TS(2339)

    我是 FireBase 的初学者 我正在尝试使用 Angular 通过 FireBase 实现 Google 登录 我在 auth 时收到上述错误 我特此附上login component ts和package json package l
  • Select2 下拉列表动态添加、删除和刷新项目

    这让我发疯 为什么 Select2 不能在其页面上实现清晰的方法或示例如何在 Select2 上进行简单的 CRUD 操作 我有一个 select2 从 ajax 调用获取数据
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • 无法在前端使用 JavaScript Fetch API 将文件上传到 FastAPI 后端

    我正在尝试弄清楚如何将图像发送到我的 API 并验证生成的token那是在header的请求 到目前为止 这就是我所处的位置 app post endreProfilbilde async def endreProfilbilde requ
  • 如何在 Google 地图 V3 中创建编号地图标记?

    我正在制作一张上面有多个标记的地图 这些标记使用自定义图标 但我还想在顶部添加数字 我已经了解了如何使用旧版本的 API 来实现这一点 我怎样才能在V3中做到这一点 注意 当您将鼠标悬停在标记上时 标题 属性会创建一个工具提示 但我希望即使
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • Linux下逻辑地址、线性地址、物理地址详细总结

    一 逻辑地址转线性地址 机器语言指令中出现的内存地址 都是逻辑地址 需要转换成线性地址 再经过MMU CPU中的内存管理单元 转换成物理地址才能够被访问到 我们写个最简单的hello world程序 用gcc编译 再反编译后会看到以下指令
  • awk的sort功能(zz)

    awk的sort功能 zz 2009 04 27 19 07 排序是经常用到的操作 然而原始版本的awk并没有内置的sort函数 想要排序数组的话只能自己实现一个sort函数 在gawk的3 1以后的版本 扩展提供了对数组的sort功能 a
  • Android开源框架之Android-PullToRefresh

    简介 PullToRefresh是一套实现非常好的下拉刷新库 它支持 ListView ExpandableListView GridView WebView ScrollView HorizontalScrollView ViewPage
  • conda的一些常用命令

    参考博客 我们可以在命令行中或者anaconda prompt中执行命令进行操作 常用命令留存 conda create n Python27 python 3 7 conda create n new env clone original
  • ctfshow-萌新-web5( 利用位运算符控制SQL获取网站敏感信息)

    ctf show 萌新模块 we5关 这一关考察的是intval 函数转换字符串的特性和SQL注入的绕过思路 这一关过滤了单双引号 or 斜杠 加减乘除号 叹号 括号 select等关键字 推荐使用取反运算符 来控制SQL语句 获取flag
  • springboot mysql serverTimezone url 设置时区

    serverTimezone GMT即可 spring datasource url jdbc mysql 127 0 0 1 3306 XXX useUnicode true characterEncoding utf8 serverTi
  • 机器学习-人工智能大数据,公开的海量数据集下载

    数据集的网站 1 Public Data Sets on Amazon Web Services AWS http aws amazon com datasets Amazon从2008年开始就为开发者提供几十TB的开发数据 2 Yahoo
  • macbook中m1安装vmware和centos

    下载vmware 链接 https pan baidu com s 14VWwKvAx2ep4MLd BVzHBg 提取码 aw60 或者去官网下载 vwmare官网下载https customerconnect vmware com do
  • Ubuntu18.04开机自动运行脚本

    参考 1 Ubuntu18 04 没有 etc rc local 这个文件 需自己创建 systemd 默认读取 etc systemd system 下的配置文件 该目录下的文件会链接 lib systemd system 下的文件 执行
  • (send disconnect: Broken pipe)让Mac终端保持(SSH)与远程的连接状态

    编辑 sudo vim etc ssh ssh config 添加以下设置可解决这个问题 断开时重试连接的次数 ServerAliveCountMax 5 每隔5秒自动发送一个空的请求以保持连接 ServerAliveInterval 5
  • MYSQL 转义字符

    1 是 MySQL 的转义符 避免和 mysql 的本身的关键字冲突 只要你不在列名 表名中使用 mysql 的保留字或中文 就不需要转义 所有的数据库都有类似的设置 不过mysql用的是 而已 通常用来说明其中的内容是数据库名 表名 字段
  • Unity3D 射线法获取被点击对象的名称

    void Update if Input GetMouseButton 0 Ray ray Camera main ScreenPointToRay Input mousePosition RaycastHit hitInfo if Phy
  • ICMP识别二层为广播帧则不发送ICMP目的端口不可达报文

    拓扑图 前提 二层交换机转发数据时不改变帧头中任何字段的数据 正常情况下 在主机0上构造一个普通的UDP用户数据报报文给主机1 报文中的UDP首部中的目的端口字段填写一个不可能使用的端口号 则主机1在收到此报文后发现本主机上没有进程监听这个
  • Flutter学习第三课-布局组件 Stack和Positioned

    层叠布局 子组件根据距父容器四个角的位置来确定自己位置 子元素按照代码中声明的顺序作为层级 最后一个声明的子元素会放置在最上层 Flutter中使用Stack和Positioned这两个组件来配合使用决定子元素的坐标位置 Stack Sta
  • 【Notepad】Notepad++ 安装XML/Json插件,格式化xml/json文件

    XML插件安装 1 打开Notepad 软件 2 菜单栏选择插件 选择 插件管理 3 搜索 XML 插件 找到该插件后 勾选该文件Npp Xml Treeview 点击 安装 4 安装成功后 重启Notepad 如果没有成功 多试几次 5
  • 一幅图弄清DFT与DTFT,DFS的关系

    http www cnblogs com BitArt archive 2012 11 24 2786390 html 很多同学学习了数字信号处理之后 被里面的几个名词搞的晕头转向 比如DFT DTFT DFS FFT FT FS等 FT和
  • 树莓派环境处理_一种基于树莓派的便携式的环境监测系统的制作方法

    本发明涉及通讯技术领域 尤其涉及一种基于树莓派的便携式的环境监测系统 背景技术 树莓派是尺寸仅有信用卡大小的一个小型电脑 可以将树莓派连接电视 显示器 键盘鼠标等设备使用 树莓派能替代日常桌面计算机的多种用途 包括文字处理 电子表格 媒体中
  • 论文阅读 视频生成

    T C Wang et al Video to Video Synthesis arXiv 1808 06601 cs Dec 2018 Accessed Nov 03 2020 Online Available http arxiv or
  • CTP监管评测API初始密码修改

    CTP监管评测API初始密码修改 最近在申请看穿式监管认证 我用的是开源的量化交易软件vnpy balabala找期货公司申请了认证账号 然而第一次登录必须修改密码 然而vnpy没有这个功能 网上找了几篇教程 压根不能用 但好在代码可以借鉴
  • 【vue】keep-alive清除缓存最简单暴力的方法

    项目场景 场景一 使用vue开发移动端 有ABC三个页面 点击A跳转到B 点B跳转到C 点C返回B 点B返回A 场景二 场景一实现之后 会出现这样一个问题 先从A跳转到B B页面会被缓存下来 当再从D跳转到B时 B页面并不会更新 解决方案