vue3 使用keep-alive缓存页面

1)给页面添加 keep-alive

在laylout组件AppMain.vue文件中将需要保持的文件列出来

<template>
  <div class="app-main">
    <router-view v-slot="{ Component }">
      <!-- <transition name="app-main-fade"> -->
      <keep-alive :include="['BatteryTests', 'modeling', 'simulation','newTemplate','newMethod']">
        <component :is="Component"></component>
      </keep-alive>
      <!-- </transition> -->
    </router-view>
  </div>
</template>

<script>
export default {
  name: 'AppMain',
}
</script>

2) 

在路由文件里面,将需要keep-alive的页面放在layout组件的children里面(如果不放在children里面keep-alive就不会生效)---此处只列出了部分


const routes: Array<RouteRecordRaw> = [
  {
    path: '/401',
    component: () => import('@/views/error-page/401.vue'),
  },
  {
    path: '/404',
    component: () => import('@/views/error-page/404.vue'),
  },
  {
    path: '/500',
    component: () => import('@/views/error-page/500.vue'),
  },
  {
    path: '/login',
    component: () => import('@/views/login/index.vue'),
  },
  {
    path: '/login-by-token',
    component: () => import('@/views/login-by-token/index.vue'),
  },
  {
    path: '/',
    redirect: '/battery-tests',
    name:'batteryTests',
    component: Layout,
    children: [
      {
        path: '/battery-tests',
        component: () => import('@/views/battery-tests/index.vue'),
        meta: {
          keepAlive: true,
        },
      },
      
      {
        path: '/new-method',
        name:'newMethod',
        component: () => import('@/views/data-processing/newMethod.vue'),
      },
      {
        path: '/calc-rules-manage/new-calc-rules',
        name:'newCalcRules',
        component: () => import('@/views/calc-rules/newCalcRules.vue'),
    
      },

    ],
  },
  },
  { path: '/:pathMatch(.*)*', redirect: '/404' },
]

3)清除表单数据 

在表单确认或者取消需要清除数据的情况下,可以手动一个一个清除数据,使用了el-form表单的页面可以使用el-form的resetFields重置表单并清空验证

4)刷新数据

只有被keep-alive的页面才会触发onActived生命周期,在此生命周期里面请求数据即可


onActivated(()=>{
  getgetDataCalcRuleListunc()
})

参考blog:Vue keep-alive 应用场景及解决办法_使用keepalive怎么更新数据_Windyluna的博客-CSDN博客

vue中keep-alive、activated的探讨和使用_keep-alive activated_0斌果0的博客-CSDN博客 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值