用 VUE 默认的 keep-alive 组件实现

保存页面的数据,页面显示就执行某个函数,页面隐藏就执行某个函数实现方式:

1.在路由内设置页面是否需要缓存;

示例代码:(在需要的组件里面添加meta 对象,keepAlive属性,keepAlive 的值为是否需要缓存组件)

    {
      path:'/UpInfo',
      name:'UpInfo',
      component:UpInfo,
      meta:{
        keepAlive:true
      }


2.在 app.vue 里面使用 router-view 组件;

在 APP.vue 里面 使用 keep-alive 把 router-view 包裹起来,并且判断是否在路由里面设置的是否需要缓存。

<template>
  <div id="app">
    <keep-alive>
      <router-view v-if='$route.meta.keepAlive'/>
    </keep-alive>
      <router-view v-if='!$route.meta.keepAlive'/>
  </div>
</template>
<script>
  export default {
    data() {
      return {
      }
    },
    methods: {},
    mounted() {
    }
  }
</script>
<style scoped />

3.页面显示就执行某个函数,页面隐藏就执行某个函数    ------ 前提是在app.vue里面用 keep-alive 组件并且路由l里面的keepAlive 为true(如上一段代码)。

//info.vue
<template>
  <div id="info">
    我的info页面
  </div>
</template>
<script>
  export default {
    data() {
      return {
      }
    },
    methods: {},
    activated() {
      console.log('我这个页面显示就会执行');
    },
    deactivated: function () {
      console.log('我这个页面退出的会执行');
    },
    mounted() {
    }
  }
</script>
<style scoped />

 

 

Logo

前往低代码交流专区

更多推荐