shadcn table
1.0.0
这是一个带有服务器端排序,过滤和分页的ShadCN表。它是用create-t3-app
引导的。
警告该项目仍在开发中,尚未准备好生产使用。
它使用新技术(PPR,React编译器),这些技术可能会更改并可能打破您的应用程序。
useDataTable
) dataTable
和columns
Props) filterFields
Prop) Data-Table-Toolbar
Notion
例如高级过滤( enableAdvancedFilter
Prop) Linear
像浮子杆一样选择( floatingBar
道具) 克隆存储库
git clone https://github.com/sadmann7/shadcn-table
使用PNPM安装依赖项
pnpm install
将.env.example
复制到.env
并更新变量。
cp .env.example .env
启动开发服务器
pnpm run dev
推动数据库模式
pnpm run db:push
在确切的特定位置将以下文件夹和文件复制到您的项目(配置)
src/components/data-table
src/db/index.ts
src/hooks
src/lib
src/types
还要安装所需的ShadCN组件和其他必需的软件包,并具有以下命令:
pnpm dlx shadcn@latest init
pnpm dlx shadcn@latest add badge button calendar checkbox command dialog dropdown-menu form input label popover select separator skeleton sonner table toggle-group tooltip drawer
pnpm add drizzle-orm postgres @tanstack/react-table zod @t3-oss/env-nextjs
pnpm add -D drizzle-kit dotenv-cli pg tsx
配置您的环境变量,然后设置数据库URL,在此示例中,我们使用PlanetsCale MySQL2数据库。我们的模式也将使用它制成。
数据库操作:为此,您可以使用您选择的任何ORM,但是为了这个特定的示例,我们使用了毛毛雨ORM和霓虹灯。
例如,让我们使用tasks
表。
@/db/schema.ts
上创建表模式@/lib/validations/tasks.ts
文件设置表
page.tsx
,如果需要,请在您的应用程序目录中layout.tsx
。./_components
和./_lib
目录到您的项目。./_lib/queries.ts
和./_lib/actions.ts
匹配您的数据库操作。./_components/tasks-table-floating-bar.tsx
以匹配表的操作(可选)。./_components/tasks-table-columns.tsx
以定义列标题,操作,可搜索和可过滤列。./page.tsx
,定义getTasksPromise
, getTaskCountByStatus
和getTaskCountByPriority
。./_components/tasks-table.tsx
,使用React.use
Hook消耗getTasksPromise
Promise。通过承诺以触发suspense
边界。./_components/tasks-table.tsx
,使用React.useMemo
挂钩在./_components/tasks-table-columns.tsx
中定义的列进行记忆。./_components/tasks-table.tsx
,呼叫./hooks/useTasksTable.tsx
钩处理服务器端的分页,分类和过滤。./components/tasks-table-provider.tsx
中删除提供商。提供商用于展示一些其他功能,例如浮栏和高级过滤器。 在YouTube上观看代码库概述视频。
考虑订阅Kavin Desi Valli的YouTube频道以获取更多视频。
请按照部署指南获取Vercel,Netlify和Docker以获取更多信息。