diff --git a/package.json b/package.json
index 0b4e0e5f1..872c20049 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
},
"dependencies": {
"@iconify/iconify": "^2.0.0-rc.2",
- "@vueuse/core": "^4.0.0-rc.7",
+ "@vueuse/core": "^4.0.0-rc.8",
"ant-design-vue": "^2.0.0-rc.4",
"apexcharts": "^3.22.3",
"axios": "^0.21.0",
diff --git a/src/layouts/page/ParentView.vue b/src/layouts/page/ParentView.vue
index 46738f137..25632c5be 100644
--- a/src/layouts/page/ParentView.vue
+++ b/src/layouts/page/ParentView.vue
@@ -23,6 +23,7 @@
import { useCache } from './useCache';
export default defineComponent({
+ parentView: true,
setup() {
const { getCaches } = useCache(false);
diff --git a/src/layouts/page/index.tsx b/src/layouts/page/index.tsx
index f6390c0b2..1a33d56a6 100644
--- a/src/layouts/page/index.tsx
+++ b/src/layouts/page/index.tsx
@@ -12,7 +12,7 @@ import { useCache } from './useCache';
import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting';
interface DefaultContext {
- Component: FunctionalComponent;
+ Component: FunctionalComponent & { type: { [key: string]: any } };
route: RouteLocation;
}
@@ -42,7 +42,11 @@ export default defineComponent({
? 'fade-slide'
: null;
- const renderComp = () => ;
+ // When the child element is the parentView, adding the key will cause the component to be executed multiple times. When it is not parentView, you need to add a key, because it needs to be compatible with the same route carrying different parameters
+ const isParentView = Component?.type.parentView;
+ const componentKey = isParentView ? {} : { key: route.fullPath };
+
+ const renderComp = () => ;
const PageContent = unref(openCache) ? (
{renderComp()}
diff --git a/yarn.lock b/yarn.lock
index 66797301e..bf3fd9364 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1757,18 +1757,18 @@
vscode-languageserver-textdocument "^1.0.1"
vscode-uri "^2.1.2"
-"@vueuse/core@^4.0.0-rc.7":
- version "4.0.0-rc.7"
- resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.0.0-rc.7.tgz#beb2378d97ca03bc65ad05df048df95b1fbf41b0"
- integrity sha512-a45qj5TfihUJ5Q7BGHPjl7J5ugoikEoWCisiHXo2tCiSKoCVIu9GD/p0+ldYeDNyIAQZQuEO2Kn9weP8kw3LiQ==
+"@vueuse/core@^4.0.0-rc.8":
+ version "4.0.0-rc.8"
+ resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.0.0-rc.8.tgz#d4d1521d8bf1f5a5c45cac4cb81812c9f1d91d1e"
+ integrity sha512-xQGBl9tUMnk0QpqQzdf/awMUW3sQPD9iM2IzmUfcygF43CDDAaoUT8mjH6v8oTm304IJYcjueW2VzqlonxPjwQ==
dependencies:
- "@vueuse/shared" "4.0.0-rc.7"
+ "@vueuse/shared" "4.0.0-rc.8"
vue-demi latest
-"@vueuse/shared@4.0.0-rc.7":
- version "4.0.0-rc.7"
- resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.0.0-rc.7.tgz#3f7095caef42c3d2d7b0ea48bd7652257c95d5c2"
- integrity sha512-KX/JS48jejv6Ezx4TLymjltKlfRFcdw9n9qT89D4J6ygU6cechJEtpD6ACCKGehy8VkW2xKHduvioZtSLr3cNQ==
+"@vueuse/shared@4.0.0-rc.8":
+ version "4.0.0-rc.8"
+ resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.0.0-rc.8.tgz#4f948ad3a5600daaadd3136480ddd26e1cd8f246"
+ integrity sha512-oXPPaKAAdknvXD/unbqsXdZ2E0w1iMYrgAvEqd82ei9STyGBhPL4mQ1aXq4uKwFpVi1Qt6GxXRfAurbvbDox2Q==
dependencies:
vue-demi latest