
vxe-column 列自定义完全指南多级表头、冻结列与列宽拖动一次讲透【免费下载链接】vxe-tablevxe table 支持 vue2, vue3 的表格解决方案项目地址: https://gitcode.com/x-extends/vxe-tablevxe-table 是支持 Vue 2 和 Vue 3 的高性能表格解决方案而vxe-column是它的核心配置单元。本文带你快速上手 vxe-column 列自定义从基础属性、多级表头、冻结列到列宽拖动四大高频场景一次讲透帮你把表格列配置玩明白。一、认识 vxe-column每列配置的起点一个表格 若干列的组合。在 vxe-table 中每一列都用一个vxe-column标签描述最常用的属性只有三个属性作用示例值field绑定数据字段名nametitle列标题姓名width/min-width固定宽度 / 最小宽度120/160最简用法vxe-table :datatableData border vxe-column fieldname title姓名 width120/vxe-column vxe-column fieldage title年龄 width80/vxe-column vxe-column fieldaddress title地址 min-width200/vxe-column /vxe-table小提示width是锁死宽度min-width则是保底宽度剩余空间会按最小宽度比例分配给各列——布局弹性更强推荐优先使用。常用内置列类型typeseq序号列、typecheckbox多选列、typeradio单选列、typeexpand展开列。完整的列属性定义共 40 项可以参考源码 packages/table/src/column.ts组件注册入口在 packages/column/index.ts。二、多级表头用 vxe-colgroup 分组当列很多、业务维度又复杂时一张扁平表头往往不够看。vxe-table 提供了vxe-colgroup分组节点嵌套一层就是二级表头想套几层就套几层。vxe-table :datatableData border vxe-column fieldname title姓名 width100/vxe-column vxe-colgroup title成绩 fieldscore vxe-column fieldmath title数学/vxe-column vxe-column fieldenglish title英语/vxe-column /vxe-colgroup vxe-colgroup title信息 fieldinfo vxe-column fieldaddress title地址/vxe-column vxe-column fieldphone title电话/vxe-column /vxe-colgroup /vxe-table效果就是经典的表头分组样式成绩横跨数学/英语两列。实现原理不复杂——分组节点本质上也是一个列配置会维护一个children子列数组递归挂到父列上源码见 packages/table/src/group.ts 和组件注册 packages/colgroup/index.ts。 进阶技巧分组列上也可以配headerAlign、align等作用于整组分组列里还能放typeexpand展开列、typecheckbox多选列参考示例 examples/views/table/TableTest3.vue列上visible: false可临时隐藏某列而不删代码便于快速调试。三、冻结列fixed 让关键列钉在原地横向数据一多用户滚到最右侧时序号、姓名、操作按钮这些关键列往往已经滚出视野。此时用fixed把列钉住fixedleft冻结在左侧fixedright冻结在右侧vxe-table :datatableData border vxe-column typecheckbox width60 fixedleft/vxe-column vxe-column fieldname title姓名 width120 fixedleft/vxe-column !-- ... 中间几十列 ... -- vxe-column fieldaction title操作 width120 fixedright/vxe-column /vxe-table两个实用建议冻结列必须写死width。冻结区按固定宽度拼接弹性宽度会导致错位冻结列要连续。左侧冻结列之间不能插入普通列否则布局会断裂。项目里的官方示例 examples/views/grid/GridTest3.vue 就是左侧多选首列冻结、右侧操作列冻结的标准写法examples/views/table/TableTest9.vue 还演示了冻结列配合drag-sort拖拽排序的效果。四、列宽拖动resizable 一个属性搞定让用户自己拖表头调整列宽是提升表格体验最便宜的手段。vxe-table 支持整表开启和单列开启两种方式方式一整表开启推荐vxe-table :datatableData border :column-config{resizable: true}/vxe-table在表头任意列的分隔条上按住拖动即可用户调整后的列宽会自动记忆。方式二单列开启vxe-column fieldname title姓名 width120 resizable/vxe-column相关细节拖动列宽的同时配合表头drag: true还能拖动列顺序见 examples/views/table/TableTest9.vue行高拖动、双击自动撑满高度由resizable-config控制参考 examples/views/table/TableTest3.vue列拖动、列自定义隐藏/排序后自动保存等能力由工具条配合column-config的useKey等配置完成示例见 examples/views/table/TableTest3.vue。五、常用属性速查表属性说明典型值field数据字段namewidth/min-width固定/弹性宽度120fixed冻结方向left/rightresizable允许拖动列宽truealign/header-align单元格/表头对齐left/center/rightshow-overflow内容超长显示省略号truevisible是否可见true/falsesortable允许排序trueformatter值格式化函数cell-render自定义单元格渲染{ name: CellLink }六、总结列 vxe-columnfield title width三件套起步min-width布局更弹性多级表头 vxe-colgroup嵌套即分组支持任意层级冻结列 fixed左钉关键信息、右钉操作按钮注意固定写死宽度拖动列宽 resizable整表开column-config单列开属性体验提升立竿见影。掌握这四招vxe-column 的列自定义基本就通透了。更多属性细节可查阅源码 packages/table/src/column.ts 与示例目录 examples/views/table/。【免费下载链接】vxe-tablevxe table 支持 vue2, vue3 的表格解决方案项目地址: https://gitcode.com/x-extends/vxe-table创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考