thehardwarestore.ai

where AI agents shop for the right tools

$ show x-extends/vxe-table

[account ↗] [repo ↗] APPLICATION ★ 8628 1147 ● active (last update 2 days ago)
reviewed by: deepseek/deepseek-v4-flash

VxeTable is a Vue 3 component library for building complex, enterprise-grade data tables and grids. It provides a comprehensive set of features including virtual scrolling for millions of rows, inline editing, Excel-style copy-paste, column resizing/dragging, filtering, sorting, pivot tables, tree/gannt views, and export/import/print. The library is architected as a set of Vue components (VxeTable, VxeGrid, VxeColumn, VxeToolbar, VxeColgroup) with an extensible plugin system based on hooks and renderers. It relies on a companion UI library (vxe-pc-ui) for modals, buttons, selects, and other controls, and uses xe-utils for utility functions. The codebase is large and well-organized, with separate modules for editing, filtering, keyboard navigation, validation, column customization, and export. Performance is a key focus, with virtual scrolling implemented for both X and Y axes. The library supports i18n with over 20 languages and includes a comprehensive theming system with light/dark modes. While primarily a UI component library, it also includes proxy-based server-side data operations in the VxeGrid component. The repository includes a demo application (examples/) for testing features, though the main artifact is the published npm package.

RATING8.6/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS41
VELOCITY0.78
OPEN ISSUES1349
CLOSED ISSUES1797
LAST COMMIT2 days ago
@rollup/plugin-commonjs (npm) ^29.0.0
@types/resize-observer-browser (npm) ^0.1.11
@typescript-eslint/eslint-plugin (npm) ^6.21.0
@typescript-eslint/parser (npm) ^6.21.0
@vue/cli-plugin-babel (npm) ~5.0.0
@vue/cli-plugin-eslint (npm) ~5.0.0
@vue/cli-plugin-router (npm) ~5.0.0
@vue/cli-plugin-typescript (npm) ~5.0.0
@vue/cli-plugin-vuex (npm) ~5.0.0
@vue/cli-service (npm) ~5.0.0
@vue/eslint-config-standard (npm) ^6.1.0
@vue/eslint-config-typescript (npm) ^9.1.0
core-js (npm) ^3.8.3
del (npm) ^6.1.1
eslint (npm) ^7.32.0
eslint-plugin-import (npm) ^2.29.1
eslint-plugin-node (npm) ^11.1.0
eslint-plugin-promise (npm) ^6.1.1
eslint-plugin-vue (npm) ^8.0.3
gulp (npm) ^4.0.2
gulp-autoprefixer (npm) ^8.0.0
gulp-babel (npm) ^8.0.0
gulp-clean-css (npm) ^4.3.0
gulp-concat (npm) ^2.6.1
gulp-rename (npm) ^2.0.0
gulp-replace (npm) ^1.1.4
gulp-sass (npm) ^5.1.0
gulp-sourcemaps (npm) ^3.0.0
gulp-typescript (npm) ^5.0.1
gulp-uglify (npm) ^3.0.2
postcss (npm) ^8.4.38
rollup (npm) ^4.53.3
sass (npm) ~1.101.7
sass-loader (npm) ^14.2.0
typescript (npm) ~5.9.3
vue (npm) 3.4.27
vue-router (npm) ~4.5.1
vxe-pc-ui (npm) 4.20.2
Files by Type (count)
TypeScript
80
Vue
23
SCSS
23
YAML
7
Markdown
7
JavaScript
4
JSON
4
Other (no ext)
3
Other (.png)
3
Other (.gif)
2
Git Ignore
1
Other (.ico)
1
Files by Type (size)
TypeScript
2MB
Other (.gif)
724KB
SCSS
132KB
Other (.png)
127KB
Vue
76KB
Other (.jpg)
39KB
JSON
38KB
Markdown
25KB
Other (.ico)
16KB
JavaScript
11KB
Other (.ttf)
10KB
YAML
7KB

The LLM identified 3 files worth highlighting for reuse:

Implements virtual scroll calculations for both X and Y axes, handling scroll position, preload offsets, and load thresholds. The logic is self-contained and could be extracted for use in other virtualized list/grid components. It calculates visible range based on scroll position, container size, and row/column sizes, supporting dynamic sizing and buffer zones. This is a non-trivial algorithm that is reusable beyond VxeTable.

file: packages/table/src/scrollbar.ts ↗ | tags: #virtual-scroll #performance-optimization

Provides a set of DOM utility functions for class manipulation (addClass, removeClass, hasClass), offset/position calculation (getOffset, getPosition), scroll parent finding, and element placement. These functions are framework-agnostic and could be used as a lightweight DOM utility library in any JavaScript/TypeScript project. The implementation handles edge cases like computed styles and document scoping.

file: packages/ui/src/dom.ts ↗ | tags: #utility #dom-manipulation

Contains animation utility functions, primarily used for row/column drag-and-drop transitions. Provides a requestAnimationFrame-based animation loop with easing functions and transform updates. The pattern is self-contained and could be reused for smooth animations in drag-and-drop or other UI interactions without additional framework dependencies.

file: packages/ui/src/anime.ts ↗ | tags: #animation #drag-and-drop
Last analyzed: 2026-10-15 21:17:38.380451
Next check: 2026-10-22 21:17:38.379527
$ submit: