Skip to content

Large Dataset Performance ​

Example demonstrating VueFinder's performance with large directory structures containing 50,000 folders.

Live Demo ​

Code Example ​

Here's an example with 50,000 folders:

vue
<template>
  <vue-finder
    id="large-dataset-example"
    :driver="driver"
    :config="{
      initialPath: 'memory://',
      persist: false,
    }"
  />
</template>

<script setup>
import { ArrayDriver } from 'vuefinder';
import { ref } from 'vue';

// Generate 50,000 folders
const files = ref(
  Array.from({ length: 50000 }, (_, i) => ({
    dir: '',
    basename: `folder-${String(i + 1).padStart(5, '0')}`,
    extension: '',
    path: `memory://folder-${String(i + 1).padStart(5, '0')}`,
    storage: 'memory',
    type: 'dir',
    file_size: null,
    last_modified: Date.now(),
    mime_type: null,
    visibility: 'public',
  }))
);

const driver = new ArrayDriver({
  files: files,
  storage: 'memory',
});
</script>

Performance Features ​

VueFinder handles large directories efficiently with automatic pagination:

  • Initial Load: Only the first 50 folders are rendered, ensuring fast initial page load
  • Load More: Click "Load X more folders" to load additional folders in batches of 50
  • Progressive Loading: Users can load more folders as needed, preventing performance issues
  • Tree View: The same pagination applies to tree view components for consistent performance

This approach ensures VueFinder remains performant even with extremely large directory structures containing thousands of folders.

Use Cases ​

This performance optimization is particularly useful for:

  • Cloud storage integrations with millions of files
  • Enterprise file systems with complex directory structures
  • Media libraries with large collections
  • Backup systems with extensive file hierarchies

See Memory Driver for more information about ArrayDriver.