vue2 Keep-alive 详情页返回列表页,保留列表页之前的筛选条件和数据的简单写法

需求背景

在进行条件搜索时候对搜索数据进行详细页查看时候,回退上一页面$rotuer.back()。需要保留原来的搜索条件和数据

keep-alive 是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。结合vue-router中使用,可以缓存某个view的整个内容。

这位作者写的很仔细

传送门:Vue中 keep-alive 详解

上代码

App.vue页面


  
  


路由设置界面 router/index.js

meta: {
      plate:"text",
      title: "账号",
      icon: "icon-wg-menu1",
      menu: "show",
      menuName: "Monitor",
      keepAlive: true // true 表示需要使用缓存
    },

这样就可以实现回退保留搜索条件和数据了

关键点

1.keep-alive 代码可以结合 v-if 进行包裹,如果 meta 中的 keepAlive 为 true 进行缓存,否侧不进行缓存。

2.使用< keep-alive > 会将数据保留在内存中,如果要在每次进入页面的时候获取最新的数据,需要在 activated 阶段获取数据,承担原来created钩子中获取数据的任务。

被包含在 < keep-alive > 中创建的组件,会多出两个生命周期的钩子: activated 与 deactivated

activated:在组件被激活时调用,在组件第一次渲染时也会被调用,之后每次keep-alive激活时被调用。

deactivated:在组件被停用时调用。

注意: 只有组件被 keep-alive 包裹时,这两个生命周期才会被调用,如果作为正常组件使用,是不会被调用,以及在 2.1.0 版本之后,使用 exclude 排除之后,就算被包裹在 keep-alive 中,这两个钩子依然不会被调用!另外在服务端渲染时此钩子也不会被调用的。
 

你可能感兴趣的:(前端,vue.js,javascript)