随着互联网的不断发展,越来越多的程序员都在学习不同的编程开发方式,而组件化编程开发就是其中的一个常用开发方法。今天我们就一起来了解一下,组件化开发中关于组件的优劣性应该如何判断。

认识组件

随着近些年”微前端“概念的不断酝酿,越来越多的团队开始着手将自己的业务处理为不同组件,然后通过一些微前端做法,编排到一个业务页面中去。

那么对于组件的维护就会变得越来越重要。所以,先来看看现在大多数团队是怎么维护组件的吧!

大库型,Antd、Element标准的大库型

一次型,完全业务组件,用完一次再也不维护

高复用型,一看就应该单独封装以后给其他人用,比如:视频播放器

项目融合型,与业务项目在一起,混合store,不分你我

我暂时能想到的就这几种类型的组件,如果你的团队也在维护自己的一套组件库,那么应该很容易理解我上面所说的。

我相信,既然这么做了,肯定有这么做的理由和好处,没有人会闲着没事找麻烦做不是,那么这些做法都有什么好处和痛点呢?我从几个方面入手分别分析一下。

方便、快捷

组件嘛,当然是快能跑起来,方便能看到效果好咯。就这点来讲,还有什么比直接在业务项目里撸组件更快的方式吗!?

现在用个展示的面板,立马去components目录撸一个。

数据?不是有store吗?引入进来不就拿到数据了!

所见即所得,现在改完马上看到页面上的效果!无法反驳..

这么看确实开发这个组件是好快了,但是从整个业务需求实现来看,这么做真的是快的吗?如果这样的做法是快捷的,那为什么那么多团队在强调沉淀、封装、抽象呢?

其实很多组件当时看起来,这辈子就只可能用一次,不用封装。可是往往交互稿过来的时候就会发现,这个样式好像我在哪里见过。然后去各种业务项目里一顿翻,哇终于找到了,复制过来发现各种爆红,定睛一看,store???

所以,聪明的团队早已洞察这一切,让我们把组件都维护到同一个地方,然后大家写好文档,用的时候从库里面取就可以了。

可维护性

于是乎,大家便如火如荼的开始的组件抽象,组件整改的浩大工程。

一开始,一般会有一个团队中较为靠谱、能力突出的小伙子(嗯?怎么是我?)去把Webpack、Babel、TypeScript、SassLess、目录结构、单元测试结构、代码规范、Review规范、发布规范这些梳理好,然后写一个标准的组件出来,后再强调一下大家一定要按照规范认真维护组件,书写文档,编写单元测试。

从维护性上来讲,大家把组件都写在一个库里面,然后再用到的项目中直接引入,业务上的问题逐渐被分为组件问题还是项目问题,甚至有些需求可以用这个交互在组件库中有相似的,用那个组件就可以了,来反驳产品和设计。

组件大小、加载性能

接触Webpack的一些周边工具,比如analyzer很容易可找出具体是什么包”霸占“了这么多的流量。

发现原来组件包中还有一些个组件,看上去不应该放在大库中进行维护,比如那种一次性组件,二次封装型组件。

因为这种组件可能会引入一个很大的三方依赖,比如视频播放器、BannerSwiper等。

对于这样的组件,好的处理方式应该是创建一个独立的仓库,封装完善后,写好README,发布至内网NPM,供业务项目使用。

【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。

java组件化的优势_组件化编程开发如何判断组件的优劣性相关推荐

  1. 机器学习结构化学习模型_生产化机器学习模型

    机器学习结构化学习模型 The biggest issue in the life-cycle of ML project isn't to create a good algorithm or to ...

  2. vue 组件以字符串插入_今日分享:vue3多层嵌套组件如何访问到最外层组件的数据?...

    我们都知道在vue中父组件向子组件传参需要在组件使用的位置使用属性绑定的方式,然后在子组件中通过props接收父组件中传递过来的数据,如果涉及到多层组件嵌套我们需要涉及到好多次属性绑定和好多次prop ...

  3. python语言 行业_如何入门编程开发行业 选择Python语言怎么样

    如何入门编程开发行业?选择Python语言怎么样?Python是一种面向对象的解释型计算机程序设计语言,它是纯粹的自由软件,语法简洁清晰,它具有丰富和强大的库.它常被称为胶水语言,能够把用其他语言制作 ...

  4. java构建内存池队列_池化技术(线程池、连接池、内存池等)

    一.池化技术 - 简单点来说,就是提前保存大量的资源,以备不时之需. 对于线程,内存,oracle的连接对象等等,这些都是资源,程序中当你创建一个线程或者在堆上申请一块内存时,都涉及到很多系统调用,也 ...

  5. unity循环滚动列表_【unity游戏开发】LoopScrollRect组件

    引言 对于背包界面,排行榜列表,聊天消息,等有大量的UI列表的界面, 常规做法是为每一条数据生成一个格子,在数据量越大的情况下,会生成越来越多的Gameobject,引起卡顿. 这个组件就是为了优化这 ...

  6. python组件的react实现_【React源码解读】- 组件的实现

    前言 react使用也有一段时间了,大家对这个框架褒奖有加,但是它究竟好在哪里呢? 让我们结合它的源码,探究一二!(当前源码为react16,读者要对react有一定的了解) 回到最初 根据react ...

  7. sql执行组件是灰色的_如何分析SQL执行计划图形组件

    sql执行组件是灰色的 In the previous articles of this series, SQL Server Execution Plans overview and SQL Ser ...

  8. 广州科二化龙考场_广州化龙科目二?

    化龙科目二分五项,首先左右倒车入库,方向盘对准起始线的第三根虚线进入到终点线,车压过终点线后刹车,挂倒挡,应该保持左车身和边线1.5米到1.8米距离,然后车速要慢,观察左后视镜,看到左后视镜镜框底部挡 ...

  9. java 搭建企业应用框架_溯源微服务开发体系:一位Java开发者的转型思考

    作者丨赵钰莹 简单来说,微服务是将大型单体应用程序和服务拆分为数个甚至数十个微服务,可扩展单个组件而不是整个应用程序堆栈,从而满足服务等级协议.然而,这个过程涉及很多问题需要解决,比如拆分原则.容量规 ...

最新文章

  1. java 有序列表_关于算法:在Java中为列表列表生成唯一的有序非重复组合
  2. WebKit 内核源码分析 (三) Page
  3. 编译调试 .NET Core 5.0 Preview 并分析 Span 的实现原理
  4. 英语磁带与计算机磁带区别,小学教材仍配发英语磁带遭吐槽:谁还用录音机
  5. 前端学习(2583):生态圈练习解答下
  6. WinCE驱动的动态卸载
  7. Jack Dorsey二度卸任推特CEO,原CTO接棒,立即生效!
  8. [转载] python中callable_Python callable() 函数
  9. 功能自动化接入持续集成方案
  10. hdu1215七夕节
  11. Android环绕地球动画,手机也能带你进入360°全景立体影音世界?---杜比全景声体验全接触...
  12. kafka之生产者---总结自Kafka权威指南
  13. summernote 富文本编辑器上传七牛云服务器
  14. 为什么要使用开关柜无线测温系统来对电气设备进行测温呢?如果没有开关柜无线测温系统会出现什么问题呢?
  15. PCL之kd-tree详解
  16. 这不是结束,而是另一次重逢的开始
  17. vnc远程linux命令,用VNC实现远程桌面共享(支持Windows, Linux, …) | 易水博客
  18. 数据传输方式串行快于并行
  19. python批量查询豆瓣书籍评分(教程附源码)
  20. 【踩坑日记 · 前端】为 Excalidraw 添加中文手写字体

热门文章

  1. greendao引起的NoClassDefFoundError异常解决
  2. JdbcType类型和Java类型的对应关系
  3. 克服大数据技能差距的策略
  4. 我为什么还要造轮子?欠踹?Monk.UI表单美化插件诞生记!
  5. 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(2)--前端,以及前后端Session
  6. 线程调度 java_Java多线程--线程的调度
  7. Linux进程间通信一 System V 共享内存简介与示例
  8. java断点续传上传_java断点续传上传文件,突然关闭然后再上传文件为什么不是从之前上传的进度上传...
  9. python中dtypes_关于python:如何通过pandas DataFrame中的列设置dtypes
  10. iis7.5php.2,Windows2008 IIS7.5搭建PHP5.2