自从工作之后,本人就对 elementUI 组件抱有抵触心理,主要是以下几点
- 组件类型太少,都不符合产品需求,需要手动再实现一个。
- 相似的组件不能修改组件的某些地方,不能很好的满足个性化需求。
- 文档的案例实在太少,不能很好的快速开发。
总结上面几点我比较喜欢其他的UI组件,比如viewUI,antd,aroc,因为这些组件库提供的大量丰富的组件能够满足产品和UI的要求,也可以修改某一些模块,能够快速开发,有更多的时间摸鱼🐟。
但是elementUI开发的项目太多了,这不,公司降本增笑
之后我一下接来5个项目,大部分项目都是elementUI开发,并且是vue2的框架搭建。本着能CV就不手写的精神,使用CV大法还是很好的完成了很多界面的开发
突然出现了一个组件,类似删除之后的二次确认提示,但是需求中提示的按钮有3个,我看了一圈难道还要手动封装二次确认提示的弹框了吗?
看了一圈elementUI组件,要不只能使用Dialog 对话框来实现这个效果吗?但是使用messageBox 弹框提示是最佳解决方案呀,但是messageBox弹框好像没有最佳的方案增加一个按钮在取消按钮的旁边,就在我挠头之际,我决定使用最高级的武林秘籍,我把他称之为超级CV之术
第一步:"找"。
打开项目的node_module文件夹,找到element-ui文件夹,然后打开packages文件夹找到message-box文件夹。
第二步:"CV"。
把这整个文件夹"C"一下,找到项目合适的地方"V"一下。好啦!!恭喜你学会了超级CV之术!!
简单分析一下这个文件里面的内容
这个文件里面有三个文件,这三个文件和初始化的vue项目的文件十分相似,index.js、main.vue、main.js。再分析内容
index.js 就是导入了main.js 然后导出了main.js
简单看一下源码,最后将这里面的代码按照自己业务的需求简单修改一下,就得到了一个既满足elementUI样式的,又满足自身业务开发的好用的组件,你只需要继续按照elementUI文档使用你自己的组件即可。
看一下效果完美!!
【总结】如果遇到需要自己手动开发一个组件库的情况,不妨看看项目本身的组件库的源代码,绝大多数的UI组件库的组件单个组件都是独立分离的,完全可以复制下来稍微修改一下,就可以得到一个完美的和组件库样式一致的组件。