squid 不缓存特定页面_Vue实现页面缓存

48c79bdf44a2395b3b64e28cbd25ada3.png

使用vue开发时,当进行页面之间的切换时,上一个页面将会被销毁。但是当我们想节省性能以及保留用户上次操作的结果或避免ajax重复请求的时候,需要把某些特定的页面缓存下来。

6b4211f5db7a995d1a4c24291f67ce25.gif

keep-alive

在vue中,提供了内置组件 keep-alive , 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 相似, 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链中。

当组件在 内被切换,它的 activated deactivated 这两个生命周期钩子函数将会被对应执行。

当我们想把所有页面都缓存时,只需要用 keep-alive 包裹 router-view 即可。

39ff9a8869a385fb4a542262e375116e.png

但是大多数情况下,我们只需要把某些不需要请求的页面缓存下来。则我们需要某些特定的页面实现缓存即可。

解决方法: 通过v-if 监听指定变量来实现对指定页面的缓存;此处我监听的是 $route.meta 中自定义的变量。

9375b13952bfc09acf802277830052bd.png

给需要缓存的页面其 $route.meta 值设为 true, 不需要设为 false 。在页面发生切换时, 其 $route.meta 会做出对应变化,通过watch 可以实时监听到

7a170c8ad14e3c2a707949fd22012660.png
05689f6f5df035c7bb5ab6783e348a16.png

之后通过v-if 来绑定此变量即可。

a564239d92e6edf374972b3331338024.png

效果:

982d85f2d1f51116cf48ecfb6e019ea4.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值