Unverified Commit ea9404d2 by Sendya

fix: custom route-view keepAlive

parent 692f0f87
...@@ -41,7 +41,10 @@ ...@@ -41,7 +41,10 @@
<div class="page-header-index-wide"> <div class="page-header-index-wide">
<slot> <slot>
<!-- keep-alive --> <!-- keep-alive -->
<router-view ref="content"></router-view> <keep-alive v-if="multiTab">
<router-view ref="content" />
</keep-alive>
<router-view v-else ref="content" />
</slot> </slot>
</div> </div>
</div> </div>
...@@ -49,6 +52,7 @@ ...@@ -49,6 +52,7 @@
</template> </template>
<script> <script>
import { mapState } from 'vuex'
import PageHeader from '@/components/PageHeader' import PageHeader from '@/components/PageHeader'
export default { export default {
...@@ -80,6 +84,11 @@ export default { ...@@ -80,6 +84,11 @@ export default {
tabs: {} tabs: {}
} }
}, },
computed: {
...mapState({
multiTab: state => state.app.multiTab
})
},
mounted () { mounted () {
this.getPageMeta() this.getPageMeta()
}, },
......
<script> <script>
export default { export default {
name: 'RouteView', name: 'RouteView',
props: {
keepAlive: {
type: Boolean,
default: true
}
},
data () { data () {
return {} return {}
}, },
...@@ -17,10 +23,10 @@ export default { ...@@ -17,10 +23,10 @@ export default {
// 这里增加了 multiTab 的判断,当开启了 multiTab 时 // 这里增加了 multiTab 的判断,当开启了 multiTab 时
// 应当全部组件皆缓存,否则会导致切换页面后页面还原成原始状态 // 应当全部组件皆缓存,否则会导致切换页面后页面还原成原始状态
// 若确实不需要,可改为 return meta.keepAlive ? inKeep : notKeep // 若确实不需要,可改为 return meta.keepAlive ? inKeep : notKeep
if (meta.keepAlive === false) { if (!getters.multiTab && meta.keepAlive === false) {
return notKeep return notKeep
} }
return getters.multiTab || meta.keepAlive ? inKeep : notKeep return this.keepAlive || getters.multiTab || meta.keepAlive ? inKeep : notKeep
} }
} }
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment