需求:

  产品经理在列表页(几千个数据,n个page)点击某一项进去到详情页后,再返回到列表页发现页面回到了第一页,找不到之前的查看的是哪一条了,为了方便咋公司产品经理,返回列表页时需要记住之前的page页

解决思路:

  在列表页点击某一条进入详情页的时候,触发当前页面的keep-alive缓存页面

解决步骤:

1. 设置路由

需要缓存的路由设置 keepAlive : true, 不需要缓存的路由设置 keepAlive: false

 router index.js

[
{
path: '/dm',
component: Layout,
redirect: '/dm/basic',
name: '设备中心',
meta: {
title: '设备中心',
icon: ''
},
children: [{
path: 'basic',
name: 'Basic',
component: Basic,
meta: {
title: '设备管理',
keepAlive: true // 需要缓存
}
}, {
path: 'basic/decDetail',
name: 'DeviceDetail',
component: DeviceDetail,
meta: {
title: '设备详情',
level: 2,
hidden: true,
keepAlive: false // 不需要缓存
}
}]
},
...

2. 列表页

Bacic.vue

activated() {
//只刷新数据,不改变整体的缓存
this.getList()
},
mounted () {
this.getProductName()
},
//修改列表页的meta值,false时再次进入页面会重新请求数据。
beforeRouteLeave(to, from, next) {
from.meta.keepAlive = false
next()
},
...

3.详情页

basicDetail.vue

...
mounted () {
},
// 从详情页返回主页时把主页的keepAlive值设置为true(要做个判断,判断是不是返回到主页的)
beforeRouteLeave (to, from, next) {
if (to.name === 'Basic') {
to.meta.keepAlive = true
} else {
to.meta.keepAlive = false
}
next()
},
...

4. 这样既可以保证keepAlive缓存了页面,也可以保证再次进入缓存时刷新数据

activated() { //激活keep-alive缓存

this.getList()  // 只刷新数据, 不改变整体的缓存

},

deactivated () { //清除keep-alive的缓存
// this.$destroy(true)
},

  

在此页面缓存就完成啦,欢迎大家学习交流,本人qq 1542934395

  

Vue 缓存当前页面keep-alive的更多相关文章

  1. Vue keep-alive如何实现只缓存部分页面

    prop: include: 字符串或正则表达式.只有匹配的组件会被缓存. exclude: 字符串或正则表达式.任何匹配的组件都不会被缓存. 在2.1.0版本Vue中 常见用法: // 组件 exp ...

  2. vue缓存页面【二】

    keep-alive是vue内置的一个组件,可以使被它包含的组件处于保留状态,或避免被重新渲染. 用法:运行结果描述:input输入框内,路由切换输入框内部的内容不会发生改变.在keep-alive标 ...

  3. vue缓存页面

    vue如何和ionic的缓存机制一样,可以缓存页面,在A页面跳转至B页面后返回A页面时A页面的数据还在? 在app.vue中将router-view使用keep-alive包起来,使用v-if来判断使 ...

  4. vue 缓存的keepalive页面刷新数据

    用到这个的业务场景是这样的: a页面点击新建列表按钮进入到新建的页面b,填写b页面并点击b页面确认添加按钮,把这些数据带到a页面,填充到列表(数组),可以添加多条, 点击这条的时候进入到编辑页面,确认 ...

  5. vue缓存之keep-alive,设置想要缓存的页面

    由于项目需求从a页面跳转到b页面,返回a页面,a页面数据不能被刷新掉,方法很多列举12 方法1 a页面通过学期按钮切换学期,该学期里more进入b页面,返回a页面,返回回到对应a页面进入的高亮按钮设置 ...

  6. 前端Vue项目——登录页面实现

    一.geetest滑动验证 geetest官方文档地址:https://docs.geetest.com/ 产品——极速验证:基于深度学习的人机识别应用.极验「行为验证」是一项可以帮助你的网站与APP ...

  7. 用angular怎么缓存父页面数据

    angular做单页面应用是一个比较好的框架,但是它有一定的入门难度,对于新手来说可能会碰到很多坑,也有许多难题,大部分仔细看文档,找社区是能解决的. 但有些问题也许资料比较少,最近遇到过一个要缓存父 ...

  8. Ehcache(09)——缓存Web页面

    http://haohaoxuexi.iteye.com/blog/2121782 页面缓存 目录 1       SimplePageCachingFilter 1.1      calculate ...

  9. angular页面缓存与页面刷新

      angularJS学习笔记:页面缓存与页面刷新 遇到的问题 现在存在这样一个问题,登录前与登录成功后是同一个页面,只不过通过ngIf来控制哪部分显示,图像信息如下: 所以,整体工作不是很难,无非就 ...

随机推荐

  1. MySql 8.0服务端安装后,用navicat12连接时报2059错误_解决

    先看连接错误 连接失败:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: .... 解决方法: 进入MySQ ...

  2. python之random、time与sys模块

     一.random模块 import random # float型 print(random.random()) #取0-1之间的随机小数 print(random.uniform(n,m)) #取 ...

  3. Linux学习笔记之二

    vim编辑器 :三种工作模式 vim /tmp/xueying.txt 命令模式 a.i.o/esc     \  :wq  保存并退出 /              \ 输入模式           ...

  4. 【转】java注解处理器——在编译期修改语法树

    https://blog.csdn.net/a_zhenzhen/article/details/86065063 前言从需求说起由于相关政策,最近公司安全部要求各系统在rpc接口调用的交互过程中把相 ...

  5. 软件测试_Loadrunner_性能测试_脚本录制_录制多server请求脚本

    之前我们写过使用Loadrunner录制APP脚本的基本流程:软件测试_Loadrunner_APP测试_性能测试_脚本录制_基本操作流程,但是只能用于请求单一服务器端口适用 这次主要是写的多serv ...

  6. eclipse中JDK环境的搭建

    现在就可以用记事本开发java程序了,但是eclipse是一款java开发不可缺少的IDE,并且安装简单,下面说一下步骤,首先下载eclipse, 官网下载链接:http://www.eclipse. ...

  7. JavaScript-Clipper.js

    Clipper.js下载地址:https://sourceforge.net/projects/jsclipper/files/latest/download使用Javascript Clipper库 ...

  8. pyharm无法安装包的问题

    1.换成下面这个网址 https://github.com/pypa/pip/issues/5236 2.下载最新的pip  3. 然后换回 https://pypi.org/simple/

  9. NuGet本地包自定义路径

    <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSo ...

  10. 003_创建simulink文件

    001_创建simulink文件 1. 打开MATLAB,打开simulink 2. 打开空白模块 3. 保存,并打开模块的选择 4. 在模块里面选择后拖出模块后连线 或在搜索名称后拖出来 或在空白的 ...