@tanstack/vue-router
Version:
Modern and scalable routing for Vue applications
37 lines • 1.13 kB
JSX
import * as Vue from 'vue';
import { hydrate } from '@tanstack/router-core/ssr/client';
import { HeadContent } from '../HeadContent';
import { RouterProvider } from '../RouterProvider';
let hydrationPromise;
export const RouterClient = Vue.defineComponent({
name: 'RouterClient',
props: {
router: {
type: Object,
required: true,
},
},
setup(props) {
const isHydrated = Vue.ref(false);
hydrationPromise ?? (hydrationPromise = hydrate(props.router).finally(() => window.$_TSR.h()));
Vue.onMounted(() => {
return hydrationPromise.then(() => {
isHydrated.value = true;
});
});
return () => {
if (!isHydrated.value) {
return null;
}
return Vue.h(RouterProvider, {
router: props.router,
}, {
innerWrap: (innerProps) => [
Vue.h(HeadContent),
innerProps.children,
],
});
};
},
});
//# sourceMappingURL=RouterClient.jsx.map