vue缓存页面数据,即在进行路由跳转时,缓存跳转前页面数据

背景:想弄一个路由跳转时,保留当前页面数据,不然每次跳转回来后,就要重新写一遍,太麻烦了。
发现vue的<keep-alive>标签,与<router-view>标签搭配使用,可以达到目的。

//在.vue文件中,使用<keep-alive>标签包裹<router-view>标签
<keep-alive>
    <router-view></router-view>
</keep-alive>
//这样就可以将路由跳转页面缓存起来

//有时候,我们不一定需要缓存全部页面,只有部分页面需要缓存
<keep-alive>
    <router-view v-if="false"></router-view>
</keep-alive>
//将不需要缓存的路由隐藏掉就行了,这边推荐使用动态的控制方式

<keep-alive>
    <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
//动态控制,其中$route.meta.keepAlive数据来源设置在以下配置中

index.js中设置路由跳转是否缓存

new Router({
  routes: [
    {
      path: '/a',
      name: 'A',
      component: A,
      children: [
        {
          path: "/b",
          name: "B",
          component: B,
          meta: {
            keepAlive: false
          }
        },
        {
          path: "/c",
          name: "C",
          component: C,
          meta: {
            keepAlive: true
          }
        }
      ]
  ]
})

可能有人会和我一样想到如何清缓存的问题,不然大量的缓存存在你的本地,这样就很不行了。
ps:路由跳转页面数据缓存只是临时缓存,当我们刷新页面时,这些缓存就会被自动清空,也是在跳转到新页面时,再跳转回来,这些缓存也会被清空。

感慨:我一个后端服务开发人员,经过这一个月的前端vue开发,也算半个前端开发人员,多学点,准没错,哈哈哈

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 ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值