一、问题的开始
最近在做后台管理系统,使用的是ant-design-vue。我发现最常用的组件就是table,而且table的column 还不少,每次使用table都会在组件外配置很多的columns,相同的属性要写好多遍,比如这样:
二、开始思考,如何减少重复代码
-
确定什么可以优化,哪些无法优化。对于column,我们传入的数据是无法优化的,但是我们每一项的属性是可以避免重复开发的
-
确定优化方式。我是打算写一个公共函数,传入数据,生成columns。因此如下方法产生了:
- 分析出每个column 必须传入的属性,根据我的业务,分别是title、dataIndex、key、width、slots,其中dataIndex和key是一个值,slots是常用可选项,因为在我的业务中大多数情况会对数据展示进行特殊处理。
- 对于其余不常用属性,直接在外部传入对象,通过 object.assign进行合并
- 返回生成的columns
3. 自测
三、优化结果
-
在页面中引入这个公共方法
-
定义columns时