
Security News
New CVE Forecasting Tool Predicts 47,000 Disclosures in 2025
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.
use-antd-resizable-header
Advanced tools
antd 表格头拖拽 Hook,兼容 Table ProTable
npm i use-antd-resizable-header
Name | Type | Default | Description |
---|---|---|---|
columns | ResizableColumnType[] | undefined | antd table 的 columns |
defaultWidth | number | 120 | 某一列不能拖动,设置该列的最小展示宽度,默认 120 |
minConstraints | number | 60 | 拖动最小宽度 默认 defaultWidth/2 |
maxConstraints | number | Infinity | 拖动最大宽度 默认无穷 |
columnsState | ColumnsStateType | undefined | 列状态的配置,可以用来操作列拖拽宽度 |
onResizeStart | Function | undefined | 开始拖拽时触发 |
onResizeEnd | Function | undefined | 结束拖拽时触发 |
debounceWaitTime | number | 1000 | 窗口resize时重新渲染的防抖时间,单位 ms |
Name | Description |
---|---|
resizableColumns | 拖拽 columns,用在 Table columns |
components | 拖拽 components, 用在 Table components |
tableWidth | 表格宽度,用在 Table width |
resetColumns | 重置 |
refresh | 刷新组件 |
#000
,可通过global
或设置 css 变量--resizable-line-background
设置颜色dataIndex
,请传入一个唯一的key
,否则按照将按照 column 的序号 index 计算唯一 keyimport { useMemo } from 'react'
import { Table, type TableColumnsType } from 'antd'
import { type ResizableColumnsType, useAntdResizableHeader } from 'use-antd-resizable-header'
import 'use-antd-resizable-header/dist/style.css'
type Columns = ResizableColumnsType<TableColumnsType>
function App() {
const columns: Columns = []
const { components, resizableColumns, tableWidth, resetColumns, refresh } = useAntdResizableHeader({
columns: useMemo(() => columns, []),
// 保存拖拽宽度至本地localStorage
columnsState: {
persistenceKey: 'localKey',
persistenceType: 'localStorage',
},
});
return (
<>
<Table
columns={resizableColumns}
components={components}
scroll={{ x: tableWidth }}
/>
</>
);
}
import { useMemo } from 'react'
import { type ProColumns, ProTable } from '@ant-design/pro-components'
import { type ResizableColumnsType, useAntdResizableHeader } from 'use-antd-resizable-header'
import 'use-antd-resizable-header/dist/style.css'
type Columns = ResizableColumnsType<ProColumns[]>
function App() {
const columns: Columns = []
const { components, resizableColumns, tableWidth, resetColumns, refresh } = useAntdResizableHeader({
columns: useMemo(() => columns, []),
});
return (
<>
<ProTable
columns={resizableColumns}
components={components}
scroll={{ x: tableWidth }}
/>
</>
);
}
--resizable-line-background: red;
可以采用其他阻止 render 的方案,如: columns
是 prop 或 组件外常量
.ant-table-filter-trigger {
margin-inline: 0;
}
ProTable 默认会给 fixed 列添加宽度,所以可能会造成 至少一列宽度为0
的条件无法满足。
# 开发调试工具库
pnpm i
pnpm run dev
# 预览调试 playground
cd playground
pnpm i
pnpm run dev
FAQs
antd resizable header column hook
The npm package use-antd-resizable-header receives a total of 321 weekly downloads. As such, use-antd-resizable-header popularity was classified as not popular.
We found that use-antd-resizable-header demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.