页面跳转,页面缓存

在写项目的过程中,有些需求使页面进行跳转(并且将该页面缓存下来),再次返回该页面的时候,需要原来的页面再次还原.所以解决思路就是:使用浏览器存储将data数据存在浏览器中,当满足一定的条件的时候再将数据调出来,就可以实现页面跳转,原页面数据不变的情况
建议:最好使用sessionStorage,因为它可以在浏览器关闭的时候自动清楚缓存,当然也可以在需要的时候手动清除(sessionStorage.clear()即可 ).
常见的几种浏览器存储方式:

  1. Cookie(主要用作状态存储,保存在服务端)
  2. session(和Cookie一样用于扩张,保存在服务端)
  3. Web storage API (localStorage、sessionStorage)(会用到它所以重点讲)

相关的api如下
在这里插入图片描述
实现步骤:

1.页面跳转的时候调用 sessionStorage.setItem(‘data’,JSON.stringify(this.$data)) 将data的数据都存在浏览器中,
2.当页面挂载的时候,在mounted函数中获取数据 let data = JSON.parse(sessionStorage.getItem(‘data’))
Object.assign(this, data) ,不要写在created中,不要问为什么,
3.另外在添加一个前置路由守卫,如果跳转路径并不是你想跳的路径直接调用sessionStorage.clear() 清除浏览器数据

关于浏览器存储的区别了解更多推荐的博客:https://blog.csdn.net/m0_65335111/article/details/127520150

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue3中,可以通过使用keep-alive组件和导航钩子函数来实现路由跳转页面数据缓存。首先,在路由中设置需要缓存页面,并使用keep-alive组件将其包裹起来。可以使用v-if指令来判断哪些页面需要缓存,为true的是需要缓存的,false是不需要缓存的。这是第一步。 然后,在需要缓存页面设置导航钩子函数beforeRouteUpdate。这个钩子函数可以在每次路由更新之前执行,并在回调中执行需要数据更新的业务逻辑。例如,可以在这里重新发送分类数据接口请求,以更新页面数据。 综上所述,以上是实现Vue3路由跳转页面数据缓存的方法。通过使用keep-alive组件和导航钩子函数,可以在页面之间实现数据的缓存和更新。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue页面跳转实现页面缓存操作](https://download.csdn.net/download/weixin_38673924/13128304)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue3-解决路由缓存问题-方案一:使用key;方案二:使用onBeforeRouteUpdate](https://blog.csdn.net/qq_45811054/article/details/130948701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值