shadcn table
1.0.0
これは、サーバー側の並べ替え、フィルタリング、およびページネーションを備えたShadCNテーブルです。 create-t3-app
でブートストラップされています。
警告このプロジェクトはまだ開発中であり、生産の使用ができていません。
新しいテクノロジー(PPR、Reactコンパイラ)を使用して、変更される可能性があり、アプリケーションを破る可能性があります。
useDataTable
フックを介して) dataTable
とcolumns
小道具) filterFields
プロップ) Data-Table-Toolbar
Notion
( enableAdvancedFilter
プロップ) 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を使用できますが、この特定の例のために、Drizzle OrmとNeonを使用しています。
例として、 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
は、列ヘッダー、アクション、検索可能およびフィルタブル列を定義します。getTaskCountByPriority
./page.tsx
、およびgetTasksPromise
getTaskCountByStatus
定義します。./_components/tasks-table.tsx
で、 React.use
フックを使用してgetTasksPromise
約束を消費します。 suspense
境界をトリガーするために約束が可決されます。./_components/tasks-table.tsx
で定義されたメモ列、 React.useMemo
フック./_components/tasks-table-columns.tsx
使用して、不必要な再レンダーを防ぐ。./_components/tasks-table.tsx
./hooks/useTasksTable.tsx
hook fook fook fool fool fool fool fool server side pagination、sorting、filteringを処理します。./components/tasks-table-provider.tsx
-table-provider.tsxからプロバイダーを削除してください。プロバイダーは、フローティングバーや高度なフィルターなどの追加機能を紹介するために使用されます。 YouTubeでコードベースの概要ビデオをご覧ください。
その他のビデオについては、Kavin Desi ValliのYouTubeチャンネルを購読することを検討してください。
詳細については、Vercel、Netlify、Dockerの展開ガイドに従ってください。