Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9ad9652

Browse files
author
dingangang
committedApr 15, 2020
3级路由缓存问题
访问3级路由时,3级根路由的名称不会存入state.tagsView.cachedViews中,所以3级路由页面不会缓存。 找到了一种解决方案: 在3级路由根页面即本例的\nested\menu1\index.vue中的created方法内,将根页面的名称加入到state.tagsView.cachedViews。这样3级路由页面就可以进行缓存,并且更深层级如menu1-2-1也可以进行缓存。
1 parent c94a8ed commit 9ad9652

File tree

6 files changed

+84
-3
lines changed

6 files changed

+84
-3
lines changed
 

‎src/views/nested/menu1/index.vue

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,23 @@
11
<template>
22
<div style="padding:30px;">
33
<el-alert :closable="false" title="menu 1">
4+
<el-input v-model="input" placeholder="placeholder" />
45
<router-view />
56
</el-alert>
67
</div>
78
</template>
9+
10+
<script>
11+
export default {
12+
name: 'Menu1',
13+
data() {
14+
return {
15+
input: 'Menu1'
16+
}
17+
},
18+
created() {
19+
const route = this.$route.matched.find(item => item.name === 'Menu1')
20+
this.$store.dispatch('tagsView/addCachedView', route)
21+
}
22+
}
23+
</script>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
<template>
22
<div style="padding:30px;">
3+
<el-input v-model="input" placeholder="placeholder" />
34
<el-alert :closable="false" title="menu 1-1" type="success">
45
<router-view />
56
</el-alert>
67
</div>
78
</template>
9+
10+
<script>
11+
export default {
12+
/* eslint-disable-next-line */
13+
name: 'Menu1-1',
14+
data() {
15+
return {
16+
input: 'Menu1-1'
17+
}
18+
}
19+
}
20+
</script>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
<template>
22
<div style="padding:30px;">
33
<el-alert :closable="false" title="menu 1-2" type="success">
4+
<el-input v-model="input" placeholder="placeholder" />
45
<router-view />
56
</el-alert>
67
</div>
78
</template>
9+
10+
<script>
11+
export default {
12+
/* eslint-disable-next-line */
13+
name: 'Menu1-2',
14+
data() {
15+
return {
16+
input: 'Menu1-2'
17+
}
18+
}
19+
}
20+
</script>
Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
1-
<template functional>
1+
<template>
22
<div style="padding:30px;">
3+
<el-input v-model="input" placeholder="placeholder" />
34
<el-alert :closable="false" title="menu 1-2-1" type="warning" />
45
</div>
56
</template>
7+
8+
<script>
9+
export default {
10+
/* eslint-disable-next-line */
11+
name: 'Menu1-2-1',
12+
data() {
13+
return {
14+
input: 'Menu1-2-1'
15+
}
16+
}
17+
}
18+
</script>
Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
1-
<template functional>
1+
<template>
22
<div style="padding:30px;">
3+
<el-input v-model="input" placeholder="placeholder" />
34
<el-alert :closable="false" title="menu 1-2-2" type="warning" />
45
</div>
56
</template>
7+
8+
<script>
9+
export default {
10+
/* eslint-disable-next-line */
11+
name: 'Menu1-2-2',
12+
data() {
13+
return {
14+
input: 'Menu1-2-2'
15+
}
16+
}
17+
}
18+
</script>
Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
1-
<template functional>
1+
<template>
22
<div style="padding:30px;">
3+
<el-input v-model="input" placeholder="placeholder" />
34
<el-alert :closable="false" title="menu 1-3" type="success" />
45
</div>
56
</template>
7+
8+
<script>
9+
export default {
10+
/* eslint-disable-next-line */
11+
name: 'Menu1-3',
12+
data() {
13+
return {
14+
input: 'Menu1-3'
15+
}
16+
}
17+
}
18+
</script>

1 commit comments

Comments
 (1)

genius4339 commented on Sep 3, 2021

@genius4339

这里有个问题,比如我三级页面下的页面是根据url路径参数来控制的,缓存页面后,下面不同的url路径都是一样的页面

Please sign in to comment.