基于vue3.0和element-plus的组件库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1.6 KiB

list-table-v2 Hidden Mini Table for Row Height

Goal

Replace the current probe row approach with a hidden mini table that uses flex boxes (not el-table-v2) to measure row height without causing visual flickering during resize/scroll.

Requirements

  1. Render a hidden container with 3-5 sample rows using pure flex boxes
  2. Width must respond to viewport changes (use container queries or width percentage)
  3. Row height from mini table used as estimatedRowHeight for el-table-v2
  4. No window resize event listeners - use container-based sizing
  5. No visual flickering during resize or scroll

Approach

Instead of using a single hidden probe row that gets measured repeatedly on resize:

  • Create a mini hidden div that mimics the table's cell layout
  • The mini table's width is tied to its container (no explicit resize listener needed)
  • CSS-based layout that automatically reflows with container width
  • Use ResizeObserver ONLY on the mini table container (not window)

Technical Notes

  • Use display: flex; flex-direction: column; for row structure
  • Each "row" is a flex container with same padding/styling as actual table cells
  • Use container-type: inline-size CSS for container queries (or simple width: 100%)
  • ResizeObserver on the mini table wrapper to detect width changes
  • Only re-measure when width actually changes (debounced)

Acceptance Criteria

  • No flickering when resizing window
  • No flickering when scrolling
  • Row height updates correctly when container width changes (column flex distribution changes)
  • Hidden mini table doesn't affect layout or cause scrollbar issues
  • Build passes without errors