Table، List و نمودارها
ردیفهای دستساز را با Table مرتبشدنی و نموداری جایگزین کنید که چیدمان را جابهجا نمیکند.
در این فصل
- جدول قابل مرتبسازی
- نمودار بالای جدول
- کامپوننتهای بیشتر
ردیفهای دستساز را با کامپوننتها جایگزین کنید: <Table> با ناوبری صفحهکلید و مرتبسازی، <List> با پیمایش مجازیسازیشده، و نمودارهایی که با بلوکهای یکهشتمی و نقطههای ربعی رسم میشوند.
جدول قابل مرتبسازی
ستونها آرایهای از اشیا هستند. ستونی که width ندارد، بر اساس grow از فضای باقیمانده سهم میبرد، value مقداری است که مرتبسازی مقایسه میکند و render سلول را رسم میکند.
افزودهشده: import { Table, type SortState, type TableColumn } from "@textjs/app";افزودهشده: افزودهشده: const COLUMNS: TableColumn<Deployment>[] = [افزودهشده: { key: "status", header: "Status", width: 11, render: (d) => <Status status={d.status} /> },افزودهشده: { key: "commit", header: "Commit", grow: 2 },افزودهشده: { key: "project", header: "Project", width: 10 },افزودهشده: { key: "duration", header: "Build", width: 6, align: "right", value: (d) => d.duration, render: (d) => <Text>{`${d.duration}s`}</Text> },افزودهشده: ];export default function DeploymentsPage() {افزودهشده: const [sort, setSort] = useState<SortState | null>(null); …حذفشده: return rows.map((d) => …);افزودهشده: return <Table columns={COLUMNS} rows={rows} getRowKey={(d) => d.id} sortable sort={sort} onSortChange={setSort} autoFocus />;}وقتی جدول فوکوس دارد، کلیدهای ↑ ↓ ردیف برجسته را جابهجا میکنند، کلید s ستون مرتبسازی را بهنوبت تغییر میدهد، کلید S جهت را معکوس میکند و کلید Enter تابع onSelect را فراخوانی میکند. جدولهای بلند فقط ردیفهای قابل مشاهده را رسم میکنند.
نمودار بالای جدول
<Sparkline> کادر خود را با جدیدترین نقطهها پر میکند. <BarChart> برچسبها و مقدارها را برای شما تراز میکند.
افزودهشده: import { BarChart, Sparkline } from "@textjs/app";افزودهشده: افزودهشده: const [chart, setChart] = useState<"spark" | "bars">("spark");افزودهشده: useInput((e) => {افزودهشده: if (e.input === "c") setChart((c) => (c === "spark" ? "bars" : "spark"));افزودهشده: });افزودهشده: return ( <Box className="flex-col grow gap-1">افزودهشده: <Box className="flex-col" height={4}>افزودهشده: <Text color="subtle">Build time, last 24 deployments</Text>افزودهشده: {chart === "spark" ? (افزودهشده: <Sparkline data={buildTimes} height={3} color="accent" />افزودهشده: ) : (افزودهشده: <BarChart data={byProject} formatValue={(v) => `${v}s`} />افزودهشده: )}افزودهشده: </Box> <Table … /> </Box> );کادر نمودار ارتفاع ثابتی دارد، بنابراین تغییر نمودارها هرگز جدول را جابهجا نمیکند و ردیفهای آن دوباره کدگذاری نمیشوند.
کامپوننتهای بیشتر
مستندات <List>، <Tree>، <Tabs>، <Select>، <Input>، <Modal>، <Toaster>، <CommandPalette>، <ProgressBar>، <LineChart> و موارد دیگر در بخش کامپوننتها آمده است.
امتحان کنید
این Acme Deploys در پایان فصل است که در DevTools اجرا میشود. روی پد کلیک کنید، سپس از کلیدهای زیر استفاده کنید.
باز کردن کنسول
برنامه در DevTools رندر میشود.ابتدا گزینهٔ «نمایش قابلیتها برای توسعهدهندگان وب» را در تنظیمات Safari ← پیشرفته فعال کنید. سپس اینجا کلیک کنید و s را فشار دهید.
باز کردن در رایانه
این برنامه در کنسول DevTools رندر میشود که به مرورگر دسکتاپ نیاز دارد.
آزمون
2 پرسشبرای تکمیل فصل به همهٔ پرسشها پاسخ دهید.