這是一個使用 React、TypeScript 和 Vite 建置的表格元件庫。
- 使用
React 18 - 使用
Storybook進行元件開發和展示 - 使用
TailwindCSS進行樣式處理 TypeScript支援,Vite作為建置工具,實現快速的開發體驗
分成normal sort、backend sort、custom sort
normal sort: 直接在前端進行預設的排序backend sort: 透過後端 API 進行排序custom sort: 自訂排序邏輯,可以根據需求進行排序
用於高效地渲染和顯示大筆表格資料。 當一個表格需要顯示大量的資料時,直接渲染所有行會導致性能問題。 虛擬滾動通過僅渲染當前視口(viewport)中的行,而不是整個資料,來解決這個問題。
使用方式:設定virtualScroll為true
const App: React.FC = () => <Table virtualScroll />;
export default App;與虛擬滾動類似,應用於需要顯示大量資料。 差別在透過無限滾動不需要一次性載入所有資料。無限滾動的核心概念是,隨著用戶滾動到頁面底部,系統會自動加載更多內容,而不需要使用者手動觸發加載行為(呼叫後端API)
使用方式:
- 設定
virtualScroll為true - 設定
onScrollFetch,傳入自定義方法
//自定義方法,透過後端撈取資料
const handleFetchData = async(offset:number):Promise<ScrollFetchDataResult<any>> => { ... }
const App: React.FC = () => <Table virtualScroll onScrollFetch={handleFetchData} />;
export default App;設定欄位是否固定和其固定的方向
//設定“訂單編號"欄位固定在左方
const ecommerceColumns: TableColumn[] = [
{ field: "orderId", title: "訂單編號", width: 120, fixed: "left" },
....其他資料
]
const App: React.FC = () => <Table columns={ecommerceColumns} />;
export default App;- 複製儲存庫
- 安裝相依套件:
npm install - 啟動Storybook:
npm run storybook - 在瀏覽器中開啟
http://localhost:6006
- 執行
npm run storybook:build來建置Storybook的production。 - 執行
npm run build來建置元件庫production。
https://yihsuan1004.github.io/yih-table/?path=/docs/components-table--docs