created() {
// 防止页面刷新vuex数据丢失
window.addEventListener("beforeunload", (e) => this.beforeunloadHandler(e));
//如果sessionStorage有store就替换
if (sessionStorage.getItem("store")) {
this.$store.replaceState(
Object.assign(
{},
this.$store.state,
JSON.parse(sessionStorage.getItem("store"))
)
);
}
},
// 销毁监听事件
destroyed() {
window.removeEventListener("beforeunload", (e) =>
this.beforeunloadHandler(e)
);
},
methods: {
//将store存sessionStorage
beforeunloadHandler(e) {
this._beforeUnload_time = new Date().getTime();
sessionStorage.setItem("store", JSON.stringify(this.$store.state));
},
},
app.vue