• Vue 缓存当前页面keep-alive


    需求:

      产品经理在列表页(几千个数据,n个page)点击某一项进去到详情页后,再返回到列表页发现页面回到了第一页,找不到之前的查看的是哪一条了,为了方便咋公司产品经理,返回列表页时需要记住之前的page页

    解决思路:

      在列表页点击某一条进入详情页的时候,触发当前页面的keep-alive缓存页面

    解决步骤:

    1. 设置路由

       需要缓存的路由设置 keepAlive : true, 不需要缓存的路由设置 keepAlive: false

     router index.js

    [
      {
        path: '/dm',
        component: Layout,
        redirect: '/dm/basic',
        name: '设备中心',
        meta: {
          title: '设备中心',
          icon: ''
        },
        children: [{
          path: 'basic',
          name: 'Basic',
          component: Basic,
          meta: {
            title: '设备管理',
            keepAlive: true // 需要缓存
          }
        }, {
          path: 'basic/decDetail',
          name: 'DeviceDetail',
          component: DeviceDetail,
          meta: {
            title: '设备详情',
            level: 2,
            hidden: true,
            keepAlive: false // 不需要缓存
          }
        }]
      },
    ...

    2. 列表页

    Bacic.vue

    activated() {
        //只刷新数据,不改变整体的缓存
        this.getList()
      },
    mounted () {
        this.getProductName()
      },
    //修改列表页的meta值,false时再次进入页面会重新请求数据。
      beforeRouteLeave(to, from, next) {
        from.meta.keepAlive = false
        next()
      },
    ...

    3.详情页

    basicDetail.vue

    ...
    mounted () {
      },
      // 从详情页返回主页时把主页的keepAlive值设置为true(要做个判断,判断是不是返回到主页的)
      beforeRouteLeave (to, from, next) {
        if (to.name === 'Basic') {
          to.meta.keepAlive = true
        } else {
          to.meta.keepAlive = false
        }
        next()
      },
    ...

    4. 这样既可以保证keepAlive缓存了页面,也可以保证再次进入缓存时刷新数据 

    activated() { //激活keep-alive缓存 

      this.getList()  // 只刷新数据, 不改变整体的缓存

    },

    deactivated () { //清除keep-alive的缓存
    // this.$destroy(true)
    },

      

    在此页面缓存就完成啦,欢迎大家学习交流,本人qq 1542934395

      

  • 相关阅读:
    【软件工程】Alpha冲刺 (6/6)
    【软件工程】Alpha冲刺 (5/6)
    为什么三层感知器能够解决任意区域组合的分类问题(不同隐层数的感知器的分类能力)
    PCA学习笔记(含推导过程)
    软件工程实践总结
    Beta冲刺(2/5)(麻瓜制造者)
    Beta冲刺(1/5)(麻瓜制造者)
    个人作业——华为软件开发云案例分析
    Alpha- 事后诸葛亮(麻瓜制造者)
    Alpha课堂展示(麻瓜制造者)
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/10863917.html
Copyright © 2020-2023  润新知