inleft
2022-02-09 9bcb19959eeb9da9bde2561e7278f6d0a55eb151
commit | author | age
9bcb19 1 <script>
I 2 export default {
3   name: 'RouteView',
4   props: {
5     keepAlive: {
6       type: Boolean,
7       default: true
8     }
9   },
10   data () {
11     return {}
12   },
13   render () {
14     const { $route: { meta }, $store: { getters } } = this
15     const inKeep = (
16       <keep-alive>
17         <router-view />
18       </keep-alive>
19     )
20     const notKeep = (
21       <router-view />
22     )
23     // 这里增加了 multiTab 的判断,当开启了 multiTab 时
24     // 应当全部组件皆缓存,否则会导致切换页面后页面还原成原始状态
25     // 若确实不需要,可改为 return meta.keepAlive ? inKeep : notKeep
26     if (!getters.multiTab && !meta.keepAlive) {
27       return notKeep
28     }
29     return this.keepAlive || getters.multiTab || meta.keepAlive ? inKeep : notKeep
30   }
31 }
32 </script>