这个组件时自己进行实现的。 但是在后面查看element-ui的时候才发现,原来这个组件他们已经封装好了。并且考虑到了更多场景。
那么我就从自研的组件和element-ui对比的角度,去思考和分析,研发一个上传文件组件需要考虑什么。
一、实现方式
实现方式都是通过封装 input 的 file 类型实现。
自研:
在自研过程中,我考虑的仅仅是业务上的使用。
仅考虑了上传 excel 这一种场景。 同时一些逻辑放在了组件内部处理。
但是,element-ui 开发的是一种通用逻辑。 是对任何文件上传进行适配的。
因此,在自研过程中,我看似封装了一个通用组件,但实际上夹杂了很多业务逻辑,并且也不支持除了表格以外的文件上传。
也写死了文件上传的类型,所以,其本身是一个仅限于当前页面的组件。
所以,这就变成了一个倾向性的问题,
在以后的开发过程中,
是利用封装好的开源组件进行简单的二次开发。
还是利用原生的api进行封装呢?
看开发目的、开发效率、开发熟悉度。
你像这个上传文件的开发,没有使用开源组件是因为对element-ui 的 api 不熟悉导致的。
而本身这是一个业务场景的上传组件,本身是不太具备复用性的。
所以,这个倾向是不固定的。
要视情况而定。
在前期开发过程中,为了快速支持,可能是从开发效率和开发熟悉度上快速进行开发,但如果后期需要进行更加的通用,那么就需要更快的进行考量。
再者,如果非要说倾向,那还是倾向于使用封装好的开源组件。
因为这样最省力。 但为了提升自己,后续开发中也要明白他们是如何封装得出的。
可以看一下他们封装的源码。
啊,又给自己挖了一个坑,看 element-ui 文件上传组件的源码。