还在用一堆JSON配置项封装表单?你不会还不知道装饰器吧?

一、写在前面
本文使用 Vue3 + Vite + TypeScript + Element-Plus 作为主要的环境和前提,不讨论其他状况下的问题。
在常见的后台管理系统中,前端往往需要大量的表格来显示数据,而表单的封装也经常需要重复的代码,因此,我们希望有一个简单的封装,使得我们能够快速地使用。
二、其他人的常规实现

封装个 Table 组件,要求传入需要显示的数据数组,以及需要显示的列的配置项 JSON 数组,根据不同的配置项来展示不同形式的列;

调用时声明一堆 JSON 来配置每个列的参数,高级一些的声明了一个 interface 或者 type 来定义表格列支持的配置列参数;

声明一个 interface 或者 type 来作为显示数据的属性,如 User

大功告成。

嗯,看起来很棒的封装,先点个赞了再来吐槽问题。

三、我们不太一样的封装
1)封装原则

相同的数据或配置,全局只存在一份。
不允许使用 interface type 作为显示数据的类型定义方式
不允许使用 JSON 作为配置项的声明方式

2)封装思路

1. 定义数据结构

首......

暂无评论

暂无评论...