רכיבי נתונים

<List>, <Table> ו-<Tree>: עם וירטואליזציה, מיון ובחירה.

<List>, <Table> ו-<Tree> מציגים מערכי נתונים גדולים. רק שורות גלויות עוברות רינדור.

בשידור חי72×13 · booting Turbolog…tsx
preview://table:1
<Table  columns={[    { key: "name", header: "Service" },    { key: "region", header: "Region", width: 8 },    { key: "p95", header: "p95", width: 7, align: "right" },  ]}  rows={services}  sortable  selectionMode="multiple"  onSelect={(s) => router.push(`/services/${s.name}`)}/>

<List>, <Table> ו-<Tree> משתמשים באותו מודל מקלדת.

מקשיםפעולה
↑ ↓ / j kתנועה
PgUp PgDn, Ctrl+U Ctrl+Dמעבר עמוד, חצי עמוד
Home End / g Gמעבר לראשון, לאחרון
↵onSelect
גלגלתהזזת הסמן

הם ממלאים את רכיב האב כברירת מחדל. יש להעביר height למספר קבוע של שורות.

<List>

רשימה וירטואלית. גובה כל שורה הוא תא אחד.

<List  items={requests}  getLabel={(r) => `${r.method} ${r.path}`}  onSelect={open}/>
⁦Prop⁩תיאור
itemsמערך כלשהו
renderItem(item, { highlighted, focused }) => ReactNode
isItemDisabledדילוג של הסמן על הפריט
heightשורות גלויות (ברירת מחדל: מילוי)
highlightedIndex / onHighlightסמן מבוקר
vimKeysj k g G (ברירת מחדל true)

<Table>

העמודות חולקות את הרוחב הנותר, אלא אם מוגדר להן width. הכותרות והתאים משתמשים באותם כללי flex, ולכן הם תמיד מיושרים.

שדה עמודהתיאור
keyמזהה ומנגנון גישה לערך כברירת מחדל
width / growמספר תאים קבוע או חלק מהרוחב הנותר
alignleft right center
valueערך לתצוגה ולמיון
renderתוכן תא מותאם אישית
compareמיון מותאם אישית

מיון

עם sortable, יש ללחוץ על מספר העמודה כדי למיין לפיה (ושוב כדי להפוך את הכיוון), על s כדי לעבור בין העמודות ועל S כדי להפוך את הכיוון. המיון יציב. לשליטה בו יש להשתמש ב-sort וב-onSortChange.

בחירה

selectionMode="multiple" מוסיף עמודת סימון; Space משנה את מצב הבחירה של השורה המודגשת. לשליטה בבחירה יש להשתמש ב-selectedKeys וב-onSelectionChange, וב-getRowKey למפתחות יציבים.

<Tree>

עץ שניתן להרחיב עם קווי עזר.

בשידור חי56×11 · booting Turbolog…tsx
preview://tree:1
<Tree  data={[{ id: "app", label: "app", children: [{ id: "page", label: "page.tsx", hint: "2.8 kB" }] }]}  defaultExpanded={["app"]}  onSelect={(node) => open(node.id)}/>

→ מרחיב ענף או נכנס אליו. ← מכווץ או קופץ לרכיב האב. Space מחליף בין הרחבה לכיווץ. flattenTree(data, expanded) חושף את השורות הגלויות אם נדרש מנגנון רינדור משלכם.

עריכת הדף ב-GitHub