Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.

Commit

Permalink
fix(nuxt): extract component to provide route (#6325)
Browse files Browse the repository at this point in the history
  • Loading branch information
danielroe authored Aug 3, 2022
1 parent d1cc5cc commit f75d0df
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions packages/nuxt/src/pages/runtime/page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,23 +33,14 @@ export default defineComponent({
default: (routeProps: RouterViewSlotProps) => {
if (!routeProps.Component) { return }

const Component = defineComponent({
setup () {
provide('_route', routeProps.route)
return () => h(routeProps.Component, {
key: generateRouteKey(props.pageKey, routeProps)
} as {})
}
})

return _wrapIf(Transition, routeProps.route.meta.pageTransition ?? defaultPageTransition,
wrapInKeepAlive(routeProps.route.meta.keepalive, isNested && nuxtApp.isHydrating
// Include route children in parent suspense
? h(Component)
? h(Component, { key: generateRouteKey(props.pageKey, routeProps), routeProps } as {})
: h(Suspense, {
onPending: () => nuxtApp.callHook('page:start', routeProps.Component),
onResolve: () => nuxtApp.callHook('page:finish', routeProps.Component)
}, { default: () => h(Component) })
}, { default: () => h(Component, { key: generateRouteKey(props.pageKey, routeProps), routeProps } as {}) })
)).default()
}
})
Expand All @@ -63,3 +54,11 @@ export default defineComponent({
}>

const defaultPageTransition = { name: 'page', mode: 'out-in' }

const Component = defineComponent({
props: ['routeProps'],
setup (props) {
provide('_route', props.routeProps.route)
return () => h(props.routeProps.Component)
}
})

0 comments on commit f75d0df

Please sign in to comment.