zoukankan      html  css  js  c++  java
  • keep-alive实现返回保留筛选条件及筛选结果

    实现页面返回时,保留筛选条件和筛选结果

    说明

    . keep-alive

    是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM

    实现

    结合router实现部分页面缓存

    模板应用

    <keep-alive>
      <router-view v-if="$route.meta && $route.meta.keepAlive"></router-view>
    </keep-alive>
    <router-view v-if="!($route.meta && $route.meta.keepAlive)"></router-view>
    

    route通过meta属性配置keepAlive控制当前路由页面是缓存还是非缓存,child表示哪些子页面返回会缓存上一级的页面相关数据

    {
      name: 'onePage', // onePage
      path: 'onePage',
      component: onePage,
      meta: {
      requiresAuth: true,
      keepAlive: true,
        child: ['/onePage/detail']
      }
    }
    

    给被要被缓存的页面设置beforeRouteLeave,判断是否清除当前页的数据,

      beforeRouteLeave(to, from, next) {
          let child = from.meta && from.meta.child || []
          if (child.indexOf(to.path) === -1) {
            // 非子页面
            this.initData() // 清除data中相关数据
            from.meta.keepAlive = false
          } else {
            // 子页面
            from.meta.keepAlive = true
          }
          next()
        },
        activated () {
          // 更新查询列表数据
          this.getList()
        },
    

    详情页设置beforeRouteLeave

      beforeRouteLeave (to, from, next) {
        // 设置下一个页面的路由,让其列表搜索条件缓存
        if (to.meta) {
          to.meta.keepAlive = true;
          next();
        }
      }
    
  • 相关阅读:
    cogs 908 校园网
    植保___农药基础知识
    底层终端-.c文件之间的调用
    指针复习
    电子工程世界
    电机与维修
    航拍部分
    系统集成与维修
    关于大型架构数据库和web一步一步优化草案
    服务器安装git,如何以秘钥方式提交
  • 原文地址:https://www.cnblogs.com/goddess/p/12088166.html
Copyright © 2011-2022 走看看