mirror of
https://github.com/nuxt/nuxt.git
synced 2025-02-12 11:48:17 +00:00
wip: network idle based delayed component
This commit is contained in:
parent
817c3ace86
commit
503b560d9b
@ -29,3 +29,28 @@ export const createLazyIOClientPage = (componentLoader: Component) => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* @__NO_SIDE_EFFECTS__ */
|
||||||
|
export const createLazyNetworkClientPage = (componentLoader: Component) => {
|
||||||
|
return defineComponent({
|
||||||
|
inheritAttrs: false,
|
||||||
|
setup (_, { attrs }) {
|
||||||
|
const isIdle = ref(false)
|
||||||
|
let idleHandle: number | null = null
|
||||||
|
onMounted(() => {
|
||||||
|
idleHandle = requestIdleCallback(() => {
|
||||||
|
isIdle.value = true
|
||||||
|
cancelIdleCallback(idleHandle)
|
||||||
|
idleHandle = null
|
||||||
|
})
|
||||||
|
})
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
if (idleHandle) {
|
||||||
|
cancelIdleCallback(idleHandle)
|
||||||
|
idleHandle = null
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return () => isIdle.value ? h(componentLoader, attrs) : null,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user