首页 > 其他分享 >详情页返回列表缓存定位实现

详情页返回列表缓存定位实现

时间:2023-07-29 18:12:40浏览次数:49  
标签:缓存 const name 列表 state 详情页 aliveList scrollTop ele

VUE2

vue版本^2.6.11

1.App页面

<template>
  <div id="app">
    <keep-alive :include="aliveList">
      <router-view />
    </keep-alive>
  </div>
</template>
<script>
import store from './store';
export default {
  name: 'App',
  computed: {
    aliveList() {
      return store.aliveList;
    }
  },
}
</script>

2.列表页面

<script>
export default {
  name:'List', // include缓存要加name
  activated() {
    const scrollTop = this.$route.meta.scrollTop;
    const ele = document.querySelector('#main-body');
    if (scrollTop) {
      ele.scrollTop = scrollTop;
    }
  },
  async beforeRouteLeave(to, from, next) {
    const ele = document.querySelector('#main-body');
    const scrollTop = ele ? ele.scrollTop : 0;
    from.meta.scrollTop = scrollTop;
    await Promise.resolve(
      setAlive('List', to.name === 'Detail' ? 'ADD' : 'DELETE')
    );
    next();
  }
}
</script>

3.store.js

const state = Vue.observable({
  aliveList:[]
}),
export const mutations = {
  setAlive(name, type) {
    if (type === 'ADD') {
      const list = [...state.aliveList].concat(name);
      state.aliveList = [...new Set(list)];
    } else {
      const index = state.aliveList.indexOf(name);
      if (index !== -1) {
        state.aliveList.splice(index, 1);
      }
    }
  }
}

标签:缓存,const,name,列表,state,详情页,aliveList,scrollTop,ele
From: https://www.cnblogs.com/antguo/p/17590221.html

相关文章

  • 浏览器缓存原理
    本文可以配合本人录制的视频一起食用目的通常说到浏览器缓存,大多是和性能优化有关,使用缓存,通常是两个主要目的,第一是提高访问速度,第二是减少网络IO消耗。当合理配置了缓存,可以得到提升用户体验、减轻服务器负担、节省带宽等效果,这是一种效果显著的前端性能优化手段。四个方面......
  • 散列表的查找
    散列表的查找基本思想记录的存储位置与关键字之间存在的对应关系.使用哈希函数查找对应的数据就是直接将学生的学号当做下标来存储.这样就非常好查找如何让查找根据散列函数H(key)=k查找key=n,则访问H(n)=n的地址,若内容为n则成功.若查询不到,返回一个特殊值,空指针......
  • SwitchyOmega+Whistle实现chrome无缓存改host流程(mac版)
    SwitchyOmega+Whistle实现chrome无缓存改host流程(mac版)  ......
  • 如何设计缓存,并且保证一致性
    设计缓存是一种常见的优化技术,用于存储常用数据,并在需要时快速检索。为了保证一致性,即缓存中的数据与数据源的数据保持同步,需要采取一些策略和技术来处理。以下是一个关于如何设计缓存并保证一致性的综合指南。了解缓存的基本概念:在设计缓存之前,首先要理解缓存的基本概念。缓存是......
  • 把操作列表变成下拉框要加点击事件是什么
     element-ui中的:         <el-table-columnlabel="操作"width="200px">         <templateslot-scope="scope">          <el-selectplaceholder="选择">           &......
  • AOP-Redis缓存
    我没有单独使用过Redis,细节我可能解释不到位。该文章是采用依赖注入实现AOP-Redis缓存功能的、之前有写实现Memory缓存的。异曲同工之妙。使用Redis离不开安装get包:StackExchange.Redis.操作流程:创建一个RedisAOP的.cs文件。继承IInterceptor的接口,允许程序进行拦截。该接口......
  • ehcache模糊批量移除缓存
    目录前言实现总结前言众所周知,encache是现在最流行的java开源缓存框架,配置简单,结构清晰,功能强大。通过注解@Cacheable可以快速添加方法结果到缓存。通过@CacheEvict可以快速清除掉指定的缓存。但由于@CacheEvict注解使用的是key-value的,不支持模糊删除,就会遇到问......
  • 筛选出 1指定行( 编号中包含login的行),2指定列的值 放到列表中
    第一版 写死了列的值的下标,不够人性化,还需要去数列在第几个位置#导包importxlrd#第一步根据包提供的方法读某个路径下的xlsworkbook=xlrd.open_workbook('../data/testcase.xls')#第二步根据名字找某个表每个excel里有Sheet1Sheet2等worksheet=wor......
  • 65.oracle中查看缓存命中率
    DBBlockGets:请求的数据块在buffer能满足的个数当前模式块意思就是在操作中正好提取的块数目,而不是在一致性读的情况下而产生的块数。正常的情况下,一个查询提取的块是在查询开始的那个时间点上存在的数据块,当前块是在这个时刻存在的数据块,而不是在这个时间点之前或者之后的数据......
  • 5.6for与两个列表
     ......