vue2 h5开发前进刷新后退缓存实现

news2024/9/23 1:41:36

vue2 h5开发前进刷新后退缓存实现

在store定义变量

const state = {
    includedComponents: []
}

const mutations = {
  includedComponents (state, data) {
    state.includedComponents = data
  }
}

在app.vue(我这里主要在layout.vue修改)使用 keep-alive :include ,includedComponents 是仓库管理的状态

<template>
  <div>
    <van-nav-bar
      v-show="showNav"
      :title="pageTitle"
      left-arrow
      @click-left="onClickLeft"
      class="nav-bar"
    />
    <keep-alive :include="includeComponents">
        <router-view></router-view>
    </keep-alive>
  </div>
</template>

<script>
import { getPageTitle } from '@/lang';

export default {
  name: 'Layout',
  computed: {
    showNav() {
      return !this.$route.meta.hideNav;
    },
    pageTitle() {
      return getPageTitle(this.$route.meta.title);
    },
    includeComponents() {
      return this.$store.state.includeComponents;
    }
  },
  methods: {
    onClickLeft() {
      this.$router.back();
    }
  }
}
</script>

HistoryTask.vue需要缓存的页面

index.vue --> HistoryTask.vue,以此类推a–>b–>c–>d
HistoryTask.vue -->index .vue,必须销毁当前页面通过this.$destroy()实现d–>c–>b–>a

//页面离开时
 beforeRouteLeave (to, from, next) {
 	//to.name是离开后进入的页面
    if (to.name === 'SignRecord') {
      this.$store.commit('task/includedComponents', 'HistoryTask') // 保存需要进行缓存的页面searchResult
      next()
    } else {
      //点击返回时需要将状态设置为空
      this.$store.commit('task/includedComponents', '')
      //返回上一页必须销毁当前页面,不然重新进入页面会不刷新
      this.$destroy()//销毁当前页面实例
      next()
    }
  },
  //页面进入时
  activated () {
    this.$store.commit('task/includedComponents', 'HistoryTask')
    // console.log('activated')
  },
  deactivated () {
    // console.log('deactivated')
  },

效果图

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/690146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Microsoft.Office.Interop.PowerPoin遥控PPT

Microsoft.Office.Interop.PowerPoin操作PPT 主窗体&#xff0c;填写ppt路径&#xff0c;打开ppt打开ppt后&#xff0c;可用代码操作ppt可获取每页PPT截图&#xff0c;并获取对应小节名称&#xff0c;备注等代码下载地址联系qq 主窗体&#xff0c;填写ppt路径&#xff0c;打开p…

四.图像处理与光学之3A的 AE

五.图像处理与光学之3A的 AE 3A 是Camera ISP 控制算法的一个重要组成部分,通常分为自动曝光(AE)、自动聚焦(AF)、自动白平衡(AWB)三个组件。 5.0 概述自动曝光(Auto Exposure) 自动曝光算法可以理解为一个伺服系统,它不断监控ISP生成的每一帧图像的曝光状态,如果发现采…

C# Winform小程序:局域网设置NTP服务器、实现时间同步

设置NTP服务器&#xff1a; NTP是网络时间协议(Network Time Protocol)&#xff0c;它是用来同步网络中各个计算机的时间的协议。 局域网不能连接Internet&#xff0c;可以设置一台计算机为NTP服务器。 依次点击&#xff1a;开始---运行---regedit&#xff0c;进入注册表&am…

晶体管放大器结构原理图解

功率放大器的作用是将来自前置放大器的信号放大到足够能推动相应扬声器系统所需的功率。就其功率来说远比前置放大器简单&#xff0c;就其消耗的电功率来说远比前置放大器为大&#xff0c;因为功率放大器的本质就是将交流电能"转化"为音频信号&#xff0c;当然其中不…

JAVA 正则表达式 及 案例

JAVA 正则表达式 及 案例 目录 JAVA 正则表达式 及 案例1.正则表达式Regex1.1 概述1.2 常见语法1.3 String提供了支持正则表达式的方法1.4 练习&#xff1a;测试输入身份证号 1.正则表达式Regex 1.1 概述 正确的字符串格式规则。 常用来判断用户输入的内容是否符合格式的要求…

chatgpt赋能python:为什么在写Python代码时需要注意空格的使用

为什么在写Python代码时需要注意空格的使用 作为一门高效、易读且简单的编程语言&#xff0c;Python在软件开发领域中得到了越来越广泛的应用。然而&#xff0c;在Python的编码过程中&#xff0c;空格的使用可能会带来一些难以预料到的问题。为了避免这些问题&#xff0c;我们…

Redis【实战篇】---- 商户查询缓存

Redis【实战篇】---- 商户查询缓存 1. 什么是缓存&#xff1f;1. 为什么要使用缓存2. 如何使用缓存 2. 添加商户缓存1. 缓存模型和思路2. 代码如下 3. 缓存更新策略1. 数据库缓存不一致解决方案2. 数据库和缓存不一致采用什么方案 4. 实现商铺和缓存与数据库双写一致5. 缓存穿透…

Linux系统编程:详解环境变量

目录 一. 环境变量的基本概念 1.1 什么是环境变量 1.2 环境变量的功能测试 二. 与环境变量相关的操作 三. 环境变量的组织方式 四. 通过代码获取环境变量的值 五. 总结 一. 环境变量的基本概念 1.1 什么是环境变量 环境变量是用于指定操作系统相关参数的、全局的变量。…

大语言模型 -- 部署LaWGPT模型记录

模型介绍&#xff1a; 该系列模型在通用中文基座模型&#xff08;如 Chinese-LLaMA、ChatGLM 等&#xff09;的基础上扩充法律领域专有词表、大规模中文法律语料预训练&#xff0c;增强了大模型在法律领域的基础语义理解能力。在此基础上&#xff0c;构造法律领域对话问答数据…

SpringBoot——2.7.3版本整合Swagger3

前言 Swagger2&#xff08;基于openApi3&#xff09;已经在17年停止维护了&#xff0c;取而代之的是 sagger3&#xff08;基于openApi3&#xff09;&#xff0c;而国内几乎没有 sagger3使用的文档&#xff0c;百度搜出来的大部分都是swagger2的使用&#xff0c;这篇文章将介绍…

存量时代,CRM系统如何赋能企业客户关系管理

如何发掘和吸引新客户、如何维系现有客户、如何推动业务增长&#xff0c;一直是众多公司运营管理中时常要面对的关键问题。尤其在数字化时代&#xff0c;用户获取信息的渠道越来越丰富&#xff0c;企业的获客渠道也在日益增多&#xff0c;面对每天的海量数据&#xff0c;企业该…

【无线传感器】使用 MATLAB和 XBee连续监控温度传感器无线网络研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【MOOC 测验】第3章 运输层

1​、在 ISO/OSI 参考模型中&#xff0c;对于运输层描述正确的有&#xff08; &#xff09; A. 为传输数据选择数据链路层所提供的最合适的服务B. 为系统之间提供面向连接的数据传输服务C. 可以提供端到端的差错恢复和流量控制&#xff0c;实现可靠的数据传输D. 提供路由选择…

TP composer 新创建一个vendor2,作为新库下载目录

站点目录新建一个vendor2文件夹&#xff1a; 在里面新建一个 composer.json 文件&#xff1a;(只写一个花括号就行) {} 然后这个vendor2目录里&#xff0c;使用宝塔终端执行&#xff1a; composer require zoujingli/ip2region 这样&#xff0c;vendor2目录里就会再多出 v…

AI大模型应用时代,如何通过数据“造好品,卖好品”?

在数字化时代的浪潮中&#xff0c;品牌营销正面临着前所未有的挑战和机遇。随着技术的迅猛发展&#xff0c;消费者的行为和期望也在不断演变。 新的市场环境下&#xff0c;消费者的需求和购买行为发生了哪些变化&#xff1f; 数码家电转战社媒平台&#xff0c;竞争白热化如…

HAL库记录--外部中断

1.STM32CubaMX配置 2.分析生成代码 /*Configure GPIO pin : PtPin */GPIO_InitStruct.Pin GPIO_PIN_12;GPIO_InitStruct.Mode GPIO_MODE_IT_FALLING;GPIO_InitStruct.Pull GPIO_PULLUP;HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);/* EXTI interrupt init*/HAL_NVIC_SetPri…

leetcode:191. 位1的个数(python3解法)

难度&#xff1a;简单 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 1 的个数&#xff08;也被称为汉明重量&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;…

经纬恒润OTA仿真测试解决方案为汽车智能化发展保驾护航

OTA技术是汽车实现完整网联化、智能化体验的基础&#xff0c;自被引用汽车以来&#xff0c;广受研发人员、市场用户的关注。近来&#xff0c;国家有关部门也陆续出台了相应政策&#xff0c;对汽车企业OTA技术的应用进行了约束和规范。因此&#xff0c;OTA技术在量产车型的应用落…

el-date-picker 前者选择日期 后者禁用 (包括时分)

<template><el-form><el-form-item prop"pullinDateTime" label"进站时间"><el-date-picker v-model"form.pullinDateTime" type"datetime" value-format"yyyy-MM-dd HH:mm:ss"placeholder"选择日…

【无标题】看IT小白花15分钟安装TitanIDE

作为大学刚毕业没多久的IT小白&#xff0c;入职了行云创新&#xff08;www.cloudtogo.cn&#xff09;的市场部&#xff0c;我的老大让我学习并熟悉公司的产品——TitanIDE&#xff0c;不只是局限于它的文字叙述&#xff0c;最好是能够动手实操一下&#xff0c;学会安装和使用的…