diff --git a/packages/vue/src/components/IonPage.ts b/packages/vue/src/components/IonPage.ts
index 77162d22d3..4d3b8b5587 100644
--- a/packages/vue/src/components/IonPage.ts
+++ b/packages/vue/src/components/IonPage.ts
@@ -2,12 +2,16 @@ import { h, defineComponent } from 'vue';
export const IonPage = defineComponent({
name: 'IonPage',
- setup(_, { attrs, slots }) {
+ props: {
+ isInOutlet: { type: Boolean, default: false }
+ },
+ setup(props, { attrs, slots }) {
return () => {
+ const hidePageClass = (props.isInOutlet) ? 'ion-page-invisible' : '';
return h(
'div',
{
- ['class']: 'ion-page ion-page-invisible',
+ ['class']: `ion-page ${hidePageClass}`,
...attrs,
ref: 'ionPage'
},
diff --git a/packages/vue/src/components/IonRouterOutlet.ts b/packages/vue/src/components/IonRouterOutlet.ts
index 3eed64fab8..77d164b5e6 100644
--- a/packages/vue/src/components/IonRouterOutlet.ts
+++ b/packages/vue/src/components/IonRouterOutlet.ts
@@ -301,7 +301,7 @@ export const IonRouterOutlet = defineComponent({
'ion-router-outlet',
{ ref: 'ionRouterOutlet' },
// TODO types
- components && components.map((c: any) => h(c.vueComponent, { key: c.pathname }))
+ components && components.map((c: any) => h(c.vueComponent, { key: c.pathname, isInOutlet: true }))
)
}
});
diff --git a/packages/vue/test-app/src/components/ModalContent.vue b/packages/vue/test-app/src/components/ModalContent.vue
index 2348e54736..b69172383e 100644
--- a/packages/vue/test-app/src/components/ModalContent.vue
+++ b/packages/vue/test-app/src/components/ModalContent.vue
@@ -1,19 +1,22 @@
-
-
-
- Dismiss
-
- Modal
-
-
-
- {{ title }}
-
+
+
+
+
+ Dismiss
+
+ Modal
+
+
+
+ {{ title }}
+
+