這是一個使用 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