Sfoglia il codice sorgente

fix: multi-tab mode always component keep-alive & cleanup eslint

Signed-off-by: Sendya <18x@loacg.com>
Sendya 6 anni fa
parent
commit
5b88067d70

+ 2 - 2
src/components/MultiTab/MultiTab.vue

@@ -38,7 +38,7 @@ export default {
       }
       this.pages = this.pages.filter(page => page.fullPath !== targetKey)
       this.fullPathList = this.fullPathList.filter(path => path !== targetKey)
-    },
+    }
   },
   watch: {
     '$route': function (newVal) {
@@ -53,4 +53,4 @@ export default {
     }
   }
 }
-</script>
+</script>

+ 1 - 1
src/components/MultiTab/index.js

@@ -1,2 +1,2 @@
 import MultiTab from './MultiTab'
-export default MultiTab
+export default MultiTab

+ 6 - 3
src/components/layouts/RouteView.vue

@@ -5,7 +5,7 @@ export default {
     return {}
   },
   render () {
-    const { $route: { meta } } = this
+    const { $route: { meta }, $store: { getters } } = this
 
     const inKeep = (
       <keep-alive>
@@ -15,7 +15,10 @@ export default {
     const notKeep = (
       <router-view />
     )
-    return meta.keepAlive ? inKeep : notKeep
+    // 这里增加了 multiTab 的判断,当开启了 multiTab 时
+    // 应当全部组件皆缓存,否则会导致切换页面后页面还原成原始状态
+    // 若确实不需要,可改为 return meta.keepAlive ? inKeep : notKeep
+    return meta.keepAlive || getters.multiTab ? inKeep : notKeep
   }
 }
-</script>
+</script>