From 0c010d7d3d129032d103112634e999ad64957fb2 Mon Sep 17 00:00:00 2001
From: Ertogrul Selimli <ertogrul.selimli@gmail.com>
Date: Wed, 14 Apr 2021 22:14:11 +0400
Subject: [PATCH] Caching routes doest work in nested routes ,so providing
 addCachedView between the concrete route and route with component Layout
 provides solution

---
 src/layout/components/TagsView/index.vue | 10 ++++++++++
 src/views/nested/menu1/index.vue         | 11 +++++++++++
 src/views/nested/menu1/menu1-1/index.vue | 10 ++++++++++
 3 files changed, 31 insertions(+)

diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue
index d2a56e70..6beffaa5 100644
--- a/src/layout/components/TagsView/index.vue
+++ b/src/layout/components/TagsView/index.vue
@@ -105,6 +105,10 @@ export default {
     addTags() {
       const { name } = this.$route
       if (name) {
+        const matchedRoutes = this.$route.matched
+        for (let i = 1; i < matchedRoutes.length - 1; i++) {
+          this.$store.dispatch('tagsView/addCachedView', matchedRoutes[i])
+        }
         this.$store.dispatch('tagsView/addView', this.$route)
       }
       return false
@@ -135,6 +139,12 @@ export default {
       })
     },
     closeSelectedTag(view) {
+      const matchedRoutes = view.matched
+      for (let i = 1; i < matchedRoutes.length - 1; i++) {
+        this.$store.dispatch('tagsView/delCachedView', matchedRoutes[i]).then(response => {
+          console.log('Deleted cached views')
+        })
+      }
       this.$store.dispatch('tagsView/delView', view).then(({ visitedViews }) => {
         if (this.isActive(view)) {
           this.toLastView(visitedViews, view)
diff --git a/src/views/nested/menu1/index.vue b/src/views/nested/menu1/index.vue
index 30cb6701..410f0012 100644
--- a/src/views/nested/menu1/index.vue
+++ b/src/views/nested/menu1/index.vue
@@ -5,3 +5,14 @@
     </el-alert>
   </div>
 </template>
+
+<script>
+
+export default {
+  name: 'Menu1',
+  created() {
+    console.log('Menu-1 created')
+  }
+}
+
+</script>
diff --git a/src/views/nested/menu1/menu1-1/index.vue b/src/views/nested/menu1/menu1-1/index.vue
index 27e173a6..7f42befb 100644
--- a/src/views/nested/menu1/menu1-1/index.vue
+++ b/src/views/nested/menu1/menu1-1/index.vue
@@ -5,3 +5,13 @@
     </el-alert>
   </div>
 </template>
+
+<script>
+export default {
+  name: 'Menu11',
+  created() {
+    console.log('Menu-1-1 created')
+  }
+}
+
+</script>