Ocelot-Social/webapp/plugins/keep-alive.js
2020-03-24 21:11:11 +01:00

32 lines
717 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)
}