vue3-lazy-hydration
Version:
Lazy Hydration for Vue 3 SSR
31 lines (30 loc) • 616 B
JavaScript
import { getCurrentInstance, watch, isRef } from "vue";
function useHydrateWhenTriggered({
willPerformHydration,
hydrate,
onCleanup
}, trigger) {
if (!willPerformHydration) {
return;
}
if (!getCurrentInstance()) {
throw new Error(
"useHydrateWhenTriggered must be called from the setup or lifecycle hook methods."
);
}
const unWatch = watch(
isRef(trigger) ? trigger : () => trigger,
(isTriggered) => {
if (isTriggered) {
hydrate();
}
},
{
immediate: true
}
);
onCleanup(unWatch);
}
export {
useHydrateWhenTriggered as default
};