# 关于

# 简介

本工具为应用vxe-table时的一个中间件,基于vxe-table表格组件v3.9+版本封装,旨在提供一个创建表格和配置的方案,让 Vue2 开发的项目支持一定的 TypeScript 类型提示,提升开发体验!

# 背景

在原公司时,使用vxe-table组件比较早,大概是 v1 版本时候,我封装了表格创建的中间件,原目的一是为了符合当时开发人员的习惯,将模板开发转化为 js 逻辑开发,二是为了统一各项目风格,统一更新,提升开发与管理效率。后来随着vxe-table大小版本升级,有一些破坏性更新,中间件的优势就体现了,我只需要修改中间件的内部逻辑就可以实现适配,各项目历史代码基本不会受影响。

24 年计划将依赖的vxe-table版本由 v2 升级到 v3 时候有了一些新的想法,vxe-grid功能也齐全了,于是除了将原方案适配到 v3,同时基于vxe-grid做了拓展方案,包括 grid 创建工具和配置工具,同时,由于 vue2 开发项目未使用 TS,之前的方案在使用时会经常查询文档的痛点,所以这次拓展方案通过设计了函数式编程方式以提供一定的 TS 类型支持,优化开发体验。不过离职时尚未开发完成,所以拓展方案尚未经过大量项目验证。

本工具即提取自该拓展方案,并完成了初期逻辑开发和类型文件,同时解决了后续发现的核心实现上的问题。虽然是个技术小渣渣,但是我觉得当时的思路可以分享出来,不一定直接使用本工具,也可以作为一个实现思路的参考。

# 一点说明

中间件当前适配到vxe-table@3.16.8

随着vxe-table版本的升级,配置属性或方法有时候会有变更,但是我可能无法实时跟进,所以如果项目中使用的话建议锁定vxe-table版本号,其实对团队的统一性也是好的,空闲了我就会跟进更新,同时注明适配到的版本号,方便项目根据自己的情况更新。

如果项目中使用的vxe-table版本比当前中间件适配的版本号超前,可以提 issue 提醒我跟进更新,也可以通过中间件提供的拓展方法helpersDecorator自行实现,拓展方法的使用见文档说明

# 总结

  1. 依赖vxe-table v3.9+版本
  2. 依赖vxe-grid
  3. 基于函数式编程方式实现配置工具和 grid 构造,为 vue2 场景提供一定的 TypeScript 类型支持
  4. 应对一定的破坏性更新,避免大范围修改项目代码
  5. 拓展一些功能(计划中...)
上次更新: 2025/7/30 05:52:59