کامپوننت‌های داده

<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