Ocelot-Social/webapp/plugins/keep-alive.js
2019-05-23 19:40:39 +02:00

32 lines
715 B
JavaScript

import Vue from 'vue'
let lastRoute
const keepAliveHook = {}
if (!process.server) {
keepAliveHook.install = Vue => {
const keepAlivePages = process.env.keepAlivePages || []
Vue.mixin({
// Save route if this instance is a page (has metaInfo)
mounted() {
if (this.$metaInfo) {
lastRoute = this.$route.name
}
},
activated() {
if (this.$metaInfo) {
lastRoute = this.$route.name
}
},
deactivated() {
// If this is a page and we don't want it to be kept alive
if (this.$metaInfo && !keepAlivePages.includes(lastRoute)) {
this.$destroy()
}
},
})
}
Vue.use(keepAliveHook)
}