vue项目中 解决页面回退后 不缓存以及重复请求

需求:一级页面mounted或者created中发送页面请求获取数据渲染完成后,点击进入二级页面,当回退一级页面的时候再次重复请求。

解决方式三种:

一、缓存所有页面,在app.vue中使用<keep-alive>标签包裹动态路由

二、选择性缓存部分页面

1、使用router.meta属性,在app.vue中做选择性缓存判断

2、 router.js中如下设置:

 3、使用vue-router 2.0的新特性,提供了include/exclude两个属性 可以针对性缓存相应的组件,在app.vue页面使用include属性指定要缓存的组件名,此处不是路由name。

总结,以上两种方式虽然可以缓存页面组件,但是当你第一进入需要缓存的页面后,页面数据被缓存下来,但是当你再次进入时,你会发现,页面的数据还是之前的数据,这样再次进入时无法实时动态获取数据,存在缺陷,所以个人推荐第三种方式,即activated配合keep-alive的方式缓存页面组件。

三、使用activated配合keep-alive

1、首先,需要使用router.meta属性,修改需要缓存的组件路由如下:

2、其次修改需要缓存的组件中的代码 :

 3、最后使用vue-router 2.0的新特性,提供了include/exclude两个属性 可以针对性缓存相应的组件,在app.vue页面使用include属性指定要缓存的组件名,此处不是路由name。

到此处全部设置完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值