Vue SPA 实现类似App前进刷新后退不刷新

本文旨在实现Vue单页应用(SPA)中类似原生App的页面缓存效果,前进刷新页面,后退及同级跳转时不刷新。通过分析页面层级关系和利用vue导航守卫动态控制路由缓存,实现这一目标。详细介绍了思路与具体实现方法,包括在路由文件中设置页面层级和导航守卫的运用。
摘要由CSDN通过智能技术生成

一、目标

实现原生app页面缓存效果,前进刷新页面,后退不刷新页面,同级不刷新页面

 

二、分析

1、如何判断页面是前进还是后退?

2、如何在前进后退时控制是否刷新?

 

三、思路

1、为每个页面定义一个变量来表示当前所在的层级(比如:A -> B -> C ,A的层级为1,B的层级为2,C的层级为3)

2、在页面每次切换时判断当前显示的页面和即将显示的页面的层级关系,即可知道是前进还是后退(例如: A -> B,判断A页面与B页面层级关系,如果A页面层级小于B页面则为前进,反之为后退)。

3、利用vue导航守卫判断层级关系,动态的改变路由缓存,(即改变路由对象的keepAlive得值)

 

四、实现

路由文件,自定义tree为当前页面的层级

ps:keepAlive默认全部为true,如果某页面不需要缓存可使用 this.$destroy(true ); 来销毁当前组件

const routers=[
    {
        path: '/test',
        name: 'test',   //财务查询页
        component: resolve => require(['@/page/test/test'], resolve),
        meta:{
            title : '测试页', // 标题设置在这里
            keepAlive : true,//是否缓
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值