diff --git a/packages/vue/src/components/IonRouterOutlet.ts b/packages/vue/src/components/IonRouterOutlet.ts index 4c6be263f0..98d1f24d51 100644 --- a/packages/vue/src/components/IonRouterOutlet.ts +++ b/packages/vue/src/components/IonRouterOutlet.ts @@ -323,6 +323,17 @@ export const IonRouterOutlet = defineComponent({ if (!enteringViewItem) { enteringViewItem = viewStacks.createViewItem(id, matchedRouteRef.value.components.default, matchedRouteRef.value, currentRoute); viewStacks.add(enteringViewItem); + + /** + * All views that can be transitioned to must have + * an `` element for transitions and lifecycle + * methods to work properly. + */ + if (enteringViewItem.vueComponent?.components?.IonPage === undefined) { + console.warn(`[@ionic/vue Warning]: The view you are trying to render for path ${currentRoute.pathname} does not have the required component. Transitions and lifecycle methods may not work as expected. + +See https://ionicframework.com/docs/vue/navigation#ionpage for more information.`); + } } if (!enteringViewItem.mount) {