Commit 90b3fab28ef53135f3cab1f69a4675f98a130857
1 parent
cdf2c59e
feat: routes with parameters can be cached
Showing
4 changed files
with
14 additions
and
8 deletions
CHANGELOG.zh_CN.md
@@ -6,6 +6,7 @@ | @@ -6,6 +6,7 @@ | ||
6 | - 增加富文本嵌入表单的示例 | 6 | - 增加富文本嵌入表单的示例 |
7 | - 表单组件 schema 增加 `required`属性。简化配置 | 7 | - 表单组件 schema 增加 `required`属性。简化配置 |
8 | - openModal 和 openDrawer 第二个参数可以代替`transferModalData`传参到内部 | 8 | - openModal 和 openDrawer 第二个参数可以代替`transferModalData`传参到内部 |
9 | +- 带参路由可以被缓存 | ||
9 | 10 | ||
10 | ### ⚡ Performance Improvements | 11 | ### ⚡ Performance Improvements |
11 | 12 |
src/layouts/default/LayoutContent.tsx
1 | import { defineComponent } from 'vue'; | 1 | import { defineComponent } from 'vue'; |
2 | -// import { Layout } from 'ant-design-vue'; | 2 | +import { Layout } from 'ant-design-vue'; |
3 | +import { RouterView } from 'vue-router'; | ||
4 | + | ||
3 | // hooks | 5 | // hooks |
4 | 6 | ||
5 | import { ContentEnum } from '/@/enums/appEnum'; | 7 | import { ContentEnum } from '/@/enums/appEnum'; |
6 | import { appStore } from '/@/store/modules/app'; | 8 | import { appStore } from '/@/store/modules/app'; |
7 | -import PageLayout from '/@/layouts/page/index'; | 9 | +// import PageLayout from '/@/layouts/page/index'; |
8 | export default defineComponent({ | 10 | export default defineComponent({ |
9 | name: 'DefaultLayoutContent', | 11 | name: 'DefaultLayoutContent', |
10 | setup() { | 12 | setup() { |
@@ -13,9 +15,10 @@ export default defineComponent({ | @@ -13,9 +15,10 @@ export default defineComponent({ | ||
13 | const { contentMode } = getProjectConfig; | 15 | const { contentMode } = getProjectConfig; |
14 | const wrapClass = contentMode === ContentEnum.FULL ? 'full' : 'fixed'; | 16 | const wrapClass = contentMode === ContentEnum.FULL ? 'full' : 'fixed'; |
15 | return ( | 17 | return ( |
16 | - // <Layout.Content class={`layout-content ${wrapClass} `}> | ||
17 | - <PageLayout class={`layout-content ${wrapClass} `} /> | ||
18 | - // </Layout.Content> | 18 | + <Layout.Content class={`layout-content ${wrapClass} `}> |
19 | + {() => <RouterView />} | ||
20 | + {/* <PageLayout class={`layout-content ${wrapClass} `} /> */} | ||
21 | + </Layout.Content> | ||
19 | ); | 22 | ); |
20 | }; | 23 | }; |
21 | }, | 24 | }, |
src/layouts/page/index.tsx
@@ -44,10 +44,10 @@ export default defineComponent({ | @@ -44,10 +44,10 @@ export default defineComponent({ | ||
44 | // TODO add key? | 44 | // TODO add key? |
45 | const Content = openCache ? ( | 45 | const Content = openCache ? ( |
46 | <KeepAlive max={max} include={cacheTabs}> | 46 | <KeepAlive max={max} include={cacheTabs}> |
47 | - <Component /> | 47 | + <Component key={route.path} /> |
48 | </KeepAlive> | 48 | </KeepAlive> |
49 | ) : ( | 49 | ) : ( |
50 | - <Component /> | 50 | + <Component key={route.path} /> |
51 | ); | 51 | ); |
52 | return openRouterTransition ? ( | 52 | return openRouterTransition ? ( |
53 | <Transition | 53 | <Transition |
src/views/demo/feat/tab-params/index.vue