keep-alive的使用-及遇到的问题
被keep-alive包括的的组件,当组件切换是不是走销毁流程,而是缓存起来
keep-alive有三个参数include匹配name名被缓存,exclude匹配name名不会被缓存,max被缓存组件数量
不写,组件默认全部缓存
<keep-alive ><router-view/>
</keep-alive>
include匹配参数--name指的.vue组件内的name名
数组方式匹配name<keep-alive :include="['HomeViewPage','AboutViewPage']"><router-view/></keep-alive> -->,分隔方式匹配name<keep-alive include="HomeViewPage,AboutViewPage"><router-view/></keep-alive>正则方式匹配name<keep-alive :include="/HomeViewPage|AboutViewPage/"><router-view/></keep-alive>
搭配路由使用-在meta中设置自定义键值对,命名推荐语义化,使用keepAlive
{path: '/',name: 'home',component: HomeView,meta: {keepAlive: true}}
route是跳转的路由对象,里面有hash,meta,name,query等等,此处使用mate里我们设置keepAlive的值作为判断,因为v-if和v-else不能分开使用,使用两个v-if,如果是ture就使用包裹在keep-alive的路由出口,是false就使用未被包裹的路由出口,达到设置路由缓存
<keep-alive><router-view v-if=" $route.meta.keepAlive"/></keep-alive><router-view v-if="!$route.meta.keepAlive" />
配合组件内的beforeRouteleave路由守卫来使用的话,可以达到如果是在编辑界面,或者新增界面,想切换界面却想缓存输入的部分内容,来提示编辑新增未完成,是否暂存内容,修改meta来达到效果
// 导航离开该组件的对应路由时调用beforeRouteLeave (to, from, next) {console.log(from.meta.keepAlive, 'hom')// 改变状态// from.meta.keepAlive = falsenext()}
被包裹的组件会多出两个生命周期钩子
在created和mounted之后
activated
在 keep-alive 组件激活时调用
该钩子函数在服务器端渲染期间不被调用
如果要在每次进入页面的时候获取最新的数据,需要在 activated 阶段获取数据,承担原来 created 钩子函数中获取数据的任务。
deactivated
在 keep-alive 组件停用时调用
该钩子在服务器端渲染期间不被调用
=========================================================================
此处遇到问题
编辑新增未完成,是否暂存内容,表单内容缓存,但是点击提交之后再次进入,缓存信息仍然存在
提交完表单之后,下一次提交的时候,如何删除上一次缓存问题。
vue 支持 keep-alive 组件,如果启用,页面内的所有数据都会被保留,所以,上文的互动行为二后退时保留前一页数据继续操作
没有问题。
问题出在互动行为一用户前进时总是进入新页面
,然而一旦缓存,你就没法总是进新页面了,你总是进入缓存页,这就很让人头疼了。
官方提供了include
和exclude
特性,说你可以决定哪些页面使用缓存哪些页面不用缓存。链接
然而问题又回到了原点,并没有解决我们酌情决定是否使用已缓存的缓存
这一需求。
所以很多人想到了一个方法在离开页面时销毁这个页面
是不是就可以了,然而并不能,这里出现了 bug ,组件销毁了缓存还在
学习借鉴-这个是从根源解决问题-Vue 全站缓存之 keep-alive : 动态移除缓存 - 阿星的空间
查阅其他得到方法
使用this.$router.go(0)也可以,但是页面会闪动白屏一下(好处简单一行代码搞定)
location.reload()
这种也是一样,画面一闪,效果总不是很好。
跳转空白页再跳回原页面
新建一个空白页面empty.vue,点击确定的时候先跳转到这个空白页,然后再立马跳转回来。
在需要刷新的页面添加
this.$router.replace({ path:'/empty' })
路由跳转
在空白页的created函数中添加路由跳转:
created(){
this.$router.replace({ path:'待刷新页面的path路径' })
}
这个方式,相比前两种不会出现一瞬间的空白页,只是地址栏有个快速的切换的过程,可采用
通过(组件守卫,来做判断,提交不缓存,离开其他情况进行缓存--)
// 导航离开该组件的对应路由时调用beforeRouteLeave (to, from, next) {console.log(from.meta.keepAlive, 'hom')// 改变状态// from.meta.keepAlive = falsenext()}
相关文章:
keep-alive的使用-及遇到的问题
被keep-alive包括的的组件,当组件切换是不是走销毁流程,而是缓存起来 keep-alive有三个参数include匹配name名被缓存,exclude匹配name名不会被缓存,max被缓存组件数量 不写,组件默认全部缓存 <keep-alive ><…...
华为OD面试经验分享,尤其注意机试题部分
文章目录招聘流程和背景介绍面试准备机试题目类型和解答技巧在算法部分在操作系统部分面试官提问和答题技巧面试总结和建议推荐一些华为 od 常见的机试题题目:两数之和题目:二叉树的遍历题目:链表反转题目:最大子序和招聘流程和背…...
【Java】String、StringBuffer、StringBuilder的区别
一、String 由 char[] 数组构成,使用了 final 修饰,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,然后把指针指向新的引用对象,不仅效率低下,而且浪费大量优先的内存空间。 二…...
iOS开发:对Block使用的一次研究总结
在开发中Block是经常使用的,那我们就得知其然,知其所以然。 Block是什么? Block可以封装一个匿名函数为对象,并捕获上下文所需的数据,并传给目标对象在适当的时候回调。我们使用Block的目的其实就是回调传值,那我们去看看Block的底层,再深入了解一下Block。 Block的底…...
Spark 3.1.1 shuffle fetch 导致shuffle错位的问题
背景 最近从数据仓库小组那边反馈了一个问题,一个SQL任务出来的结果不正确,重新运行一次之后就没问题了,具体的SQL如下: select col1,count(1) as cnt from table1 where dt 20230202 group by col1 having count(1) > 1这个问题是偶发…...
2月第2周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!
飞瓜轻数发布2023年2月6日-2月12日飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营能力强的B站…...
Jdk19 动态编译 Java源码为 Class 文件
动态编译 Java 源码为 Class一.背景1.Jdk 版本2.需求二.Java 源码动态编译实现1.Maven 依赖2.源码包装类3.Java 文件对象封装类4.文件管理器封装类5.类加载器6.类编译器三.动态编译测试1.普通测试类2.接口实现类3.测试四.用动态编译 Class 替换 SpringBoot 的 Bean(…...
安装 GPU 版本的 tensorflow 完整版本
前言: 之前安装的 CPU 版本的 tensorflow 一直出问题,索性就直接安装 GPU 版本的 tensorflow 了(有了GPU 就不能浪费)。 安装过程: 1)看自己有无 GPU,找到对应 GPU 的版本:任务管理…...
BOM编程-设置地址栏上的URL
<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>设置地址栏上的URL</title> </head> <body> <script> function go(){ // 获…...
设计模式之原型模式与建造者模式详解和应用
目录1 原型模式1.1 原型模式定义1.2 原型模式的应用场景1.3 原型模式的通用写法(浅拷贝)1.4 使用序列化实现深度克隆1.5 克隆破坏单例模式1.6 原型模式在源码中的应用1.7 原型模式的优缺点1.8 总结2 建造者模式2.1 建造者模式定义2.2 建造者模式的应用场…...
C语言(函数和递归)
函数是完成特定任务的独立程序代码单元。 目录 一.函数 1.创建一个简单的函数 2.定义带形式参数的函数 3.使用return从函数中返回值 二.递归 一.函数 1.创建一个简单的函数 #include <stdio.h> void print(void); //函数原型 int main(){ print(); //函…...
快乐的shell命令行
快乐的shell命令行 PART1——基础 1.权限 #超级用户权限$普通用户 2.复制粘贴 复制:鼠标左键沿着文本拖动高亮的文本被复制到X管理的缓冲区(或者双击一个单词)粘贴:鼠标中键 3.简单命令 时间和日期date当前月份的日历cal磁…...
大数据面试题flume篇
1.Flume 的Source,Sink,Channel 的作用?你们Source 是什么类型? 1. 作用 (1)Source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括 avro、thrift、exec、jm…...
零信任-深信服零信任aTrust介绍(5)
深信服零信任aTrust介绍 深信服是国内领先的互联网信任服务提供商,也是国内首家通过认证的全球信任服务商。深信服零信任是其中一项核心的信任技术,主要针对身份认证、数字签名、数字证书等方面的信任问题。 深信服零信任提供了一种新的安全保护模式…...
UVa 1343 The Rotation Game 旋转游戏 IDA* BFS 路径还原
题目链接:The Rotation Game 题目描述: 给定二十四个整数,这二十四个整数由八个一,八个二,八个三组成,从左到右,从上到下依次描述下图方格中的数字: 例如上图左边对应的输入就是[1,…...
硬件学习 软件Cadence day02 画原理图的基本操作 (键盘快捷键 , 原理图设计流程 , 从开始到导出网表流程)
1. ORCAD Capture cls 界面的快捷键 键盘 按键对应的操作I放大 (可以滚轮操作)O缩小 (可以滚轮操作)W画线Esc退出现在的状态 (画图界面 右键 End xxx)N放置网络标号J放置节点 (控制…...
【python】基于Socket的聊天室Python开发
基于Socket的聊天室Python开发一、Socket简述二、创建服务端Server2.1 创建服务端初始化2.2 监听客户端连接2.3 处理客户端消息三、创建客户端Client3.1 创建服务端初始化3.2 发送消息3.3 接收消息3.3 线程工作3.4 线程工作是不是挺好玩的呢?也可以作为课程设计哦&a…...
2023想转行软件测试的看过来,你想要了解的薪资、前景、岗位方向、学习路线都讲明白了
在过去的一年中,软件测试行业发展迅速,随着数字化技术应用的广泛普及,业界对于软件测试的要求也在持续迭代与增加。 同样的,有市场就有需求,软件测试逐渐成为企业中不可或缺的岗位,作为一个高薪又需求广的…...
TortoiseSVN的使用
基本概念 版本库 SVN保持数据的地方,所有的文件都保存在这个库中,Tortoise访问的就是远程服务器上的Subversion版本库。 工作拷贝 就是工作副本,可将版本库的文件拷贝到本地中,可以任意修改, 不会影响版本库。在你…...
操作系统(day09) -- 连续分配管理方式
连续分配管理方式 单元连续分配 动态分区分配 1.系统要用什么样的数据结构记录内存的使用情况? 两种常用的数据结构 空闲分区表 每个空闲分区对应一个表项。表项中包含分区号、分区大小、分区起始地址等信息空闲分区链 每个分区的起始部分和末尾部分分别设置前向…...
APISpace 带你一起走进西湖美景
俗话说:“上有天堂,下有苏杭”。 “欲把西湖比西子,浓妆艳抹总相宜” 今天我就带大家走进杭州的西湖美景。自古以来,文人歌者面对西湖美景留下千古绝句,还以西湖为背景书写了一段段动人的爱情传说。 天生自带浪漫色…...
傻白探索Chiplet,Design Space Exploration for Chiplet-Assembly-Based Processors(十三)
阅读了Design Space Exploration for Chiplet-Assembly-Based Processors这篇论文,是关于chiplet设计空间探索的,个人感觉核心贡献有两个:1.提出使用整数线性规划算法进行Chiplet的选择;2.基于RE和NRE提出了一个cost模型ÿ…...
系统分析师真题2020试卷相关概念一
对象系统测试的基本概念: 面向对象系统的单元测试包括方法层次的测试、类层次的测试和类树层次的测试。方法层次的测试类似于传统软件测试中对单个函数的测试; 测试技术: 方法层次的测试,单个函数的测试;常用的技术:等价类划分测试、组合功能测试、递归函数的测试和多态…...
20230215_数据库过程_渠道业务计算过程
—20221209 渠道产能 —自有人员工号表 shzc.xc_qdcn_pgtx_opertype —select * from shzc.xc_qdcn_pgtx_opertype for update ; —渠道基础目录 shzc.xc_qdcn_pgtx_qdtype —select * from shzc.xc_qdcn_pgtx_qdtype for update ; SQL_STRING:‘update shzc.xc_qdcn_pgtx_q…...
【C++】Expression的学习笔记
关于不同类别表达式的举例,请参考博文《C 中的值类别》 1. 左值和右值的简单理解 左值对应了具有内存地址的对象,而右值仅仅是临时使用的值对象。(引用自博文《C 中的值类别》)左值有名称(变量或常量名称)…...
[数据库迁移]-MySQL常见问题
[数据库迁移]-MySQL常见问题 森格 | 2023年2月 介绍:记录在MySQL数据库迁移过程中遇到的问题,以及解决方案。 文章目录[数据库迁移]-MySQL常见问题一、背景二、常见问题2.1 ERROR 20032.2 ERROR 12732.3 ERROR 10712.4 视图权限2.5 ERROR 1062三、总结一…...
C语言编译过程
C语言编译过程1、C语言编译过程2、单c文件编译实践3、多c文件编译实践4、define4.1、不带参宏4.2、带参宏4.3、带参宏和带参函数的区别5、选择性编译ifdef、ifndef、if5.1、#ifdef5.2、#ifndef5.3、#if6、静态库和动态链接库6.1、静态库实践6.1.1、将mylib.c制作成静态库6.1.2、…...
前端学习 ---常用标签
常用标签 1,文本标签 文本标签是双标签,自带加粗效果,有自己对应的文本大小,并且独占一行,有默认间距 一级标签:< h1 > < /h1 > 二级标签:< h2 > < /h2> 三级标签:&l…...
2023年PMP考试难不难?
整个考试的考察方向转向还是比较大的,基本上以“价值传递”和“以人为本”这两个出发点来考察项目经理所需要的能力。 1}新版提纲题目数量的变化 总题量从200道减少到180道,所以答题时间上相对变的宽裕一些。考试时间230分钟,中间有十分钟休…...
Netty 入门
文章目录一、概述1.1 Netty 是什么?1.2 Netty 的地位1.3 Netty 的优势二、Hello World2.1 目标2.2 服务器端2.3 客户端2.4 流程梳理三、组件3.1 EventLoop3.2 演示 NioEventLoop 处理 io 事件3.3 演示 NioEventLoop 处理普通任务3.4 演示 NioEventLoop 处理定时任务…...
代做计算机毕业设计网站/网站名查询网址
昨天去SJTU参加Google暑期实习海选。卷子发下来一看全是数据结构、算法,虽然这两个我都考过80几还可以。。但都忘得差不多了。 前面选择题大都是读读程序,只有算复杂度的问题我比较郁闷,因为当年就没有认真算过复杂度。。考试时候填的那些O(L…...
微信网站公众平台/新浪体育世界杯
Centos是rpm和yum rpm相关 sudo apt install rpmrpm -qa:查询所安装的所有rpm包 rpm -q 软件包名:查询软件是否安装rpm -qi 软件包名:查询到安装软件的信息 rpm -ql 软件包名:查询软件包安装了哪些文件,安装到了哪里…...
怎么用百度云做网站空间/seo怎么做新手入门
如果集合中不存在给定元素,则该集合add()方法会将其添加到集合中。用法:set.add(elem)The add() method doesnt add an element to theset if its already present in it otherwise itwill get added to the set.参数:add() takes single parameter(elem…...
济宁网页设计/网站搜索引擎优化报告
作者简介 joey 蚂蚁金服数据体验技术团队 继前文Typescript玩转设计模式 之 结构型模式(上)之后,本周带来的是系列文章之三,讲解的是3种结构性模式: 外观享元代理 Facade(外观) 定义 为子系统…...
怎么自己做网站模板/seo技巧课程
傅里叶变换是信号分析中最重要的工具没有之一。对于一个复杂输入信号我们除了用单位冲击信号来分解方法以外,还可以将其分解为复指数信号,对于周期函数来讲这个分解成为傅里级数对于非周期信号称为傅里叶变换。分解是现代科学的最主要的方法,…...
制作作业平台网站的设计/个人网站怎么建立
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很…...