beforeRouteEnter(to, from, next) {
console.log(to)
console.log(from)
if (from.name == 'offerZZZForecast' || from.name == 'offerHalfBuildingMaterialsSpaceList') {
to.meta.isBack = true
// to.meta.keepAlive = true
next()
console.log(1)
} else {
to.meta.isBack = false;
next()
console.log(2)
}
to.meta.title = to.query.fTypeName
},
activated() {
if (this.$route.meta.isBack == false) {
this.fSelectMatID = this.$route.query.fSelectMatID,
this.fCustomerID = this.$route.query.fCustomerID
this.querySelfBasicsTypeList()
}
// 恢复成默认的false,避免isBack一直是true,导致下次无法获取数据
// this.$route.meta.isBack=false
},
在路由meta配置返回布尔值
{
path: '/selectMaterial',
name: 'selectMaterial',
component: () => import('@/pages/selectMaterial/index.vue'),
meta: {
title: '主材预算',
keepAlive:true,
isBack:false
}
},
app.vue 页面
<template>
<div id="app">
<vLayout>
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
</vLayout>
</div>
</template>
<script>
import Vue from 'vue'
const vLayout = () => import('@/layouts/index.vue')
export default {
components: {
vLayout
}
}
</script>
vue返回刷新页面
于 2021-09-02 15:18:27 首次发布