1234567891011121314151617181920212223 |
- import { ref, onUnmounted } from 'vue';
- function useLazyLoadComponents(maxCount = 100) {
- const frameCount = ref(0);
- let rafId: number;
- function updateFrameCount() {
- rafId = requestAnimationFrame(() => {
- frameCount.value++
- if (frameCount.value >= maxCount) return
- updateFrameCount()
- })
- }
- updateFrameCount()
-
- onUnmounted(() => {
- cancelAnimationFrame(rafId)
- });
- return function defer (n: number) {
- return frameCount.value >= n
- }
- }
- export default useLazyLoadComponents
|