组件化
下面是我看了相关的文章与解答总结出来的自己的看法:
组件化:对于Vue中中的组件化来说就是整合HTML css js在一个文件中,拥有特定的基础功能
我认为组件化开发的好处主要是:
1、增加程序的可维护性;
2、代码的复用性;
3、拆分成单个组件使得每个组件拥有独立的状态和数据,避免了全局变量污染。
4、有利于提升渲染性能,实现局部刷新
对于第一点增加程序的可维护性,尤其当开发大型应用的时候,程序中有大量的变量以及函数,如果不采用组件化的开发,当某个数据发生改变时,就要更新整个页面的内容,浪费的不必要的性能,而且在变量命名的时候也会令人有些恼头,容易造成命名冲突等问题,当项目越来越大的时候,容易出现bug,维护性相对较差。
对于第二点来说,当这个项目中很多页面都需要用到相同的组件的时候,如果不采用组件化,那只能重写,造成代码冗余,降低开发效率。
对于第三点和第四点来说,Vue的每个组件都拥有独立的数据和状态,是互不干扰的,每个组件是一个watcher,当这个组件中的数据更新的时候,只需重新渲染这一个组件的区域,提升了渲染性能,做到了局部刷新。
模块化
模块化,在前端这边可以单独对css,js等进行单独封装成单个文件,具有某个特定的功能。比如我们项目中的utils工具文件等等
模块化的好处:
1、方便代码的复用、可读性,减少代码冗余度,提高开发效率,模块化使得代码结构更清晰和模块间的关系更明确,代码更易读、易理解。方便代码的维护和交接。
2、可维护性:将大文件拆解成小文件,增加可读性,每个模块可拥有独特的功能,当某个功能出现了问题,可以统一得到解决,也方便找到问题所在位置。
高内聚与低耦合
我理解的高内聚的定义是:组件或模块内部的元素(例如函数、类、方法)彼此关联紧密,共同完成一个明确的最终目标(功能)。高内聚意味着组件内的元素具有相似的功能、目的或责任,相关的代码被组织在一起,更容易定位和修改。
低耦合:彼此之间相对独立,相互之间的影响较小,每个组件或者模块单独完成最终目标中的一个小目标(功能),且修改一个组件不会对其他组件造成太大的影响,可扩展性与灵活性好。
为了更好的理解,我拿笔记本电脑来举个简单的例子,一个笔记本电脑的实现就等同于一个最终功能–供人使用,它需要硬件和软件来支撑这个最终功能,在这高内聚就体现为电脑的一个个零件,网卡、声卡、显卡、CPU等,它们分别实现某个特定的小功能(专精),当你的网卡坏了,你上不了网了,你第一时间会想到的就是网卡相关的部件以及关联的软件配置是否出现故障,这就体现了上面提到的高内聚更容易定位故障产生的位置,这就是高内聚。
但是呢单独一个零件又不能发挥什么作用,这些零件只是具有某个单独的功能,需要各个零件之间的合作与配合,才能组成一个完整的笔记本,才能拥有完整的功能,假如某一天你觉得CPU的性能不太好了,你想升级一下,那你只需要动CPU零件,其他零件受到的影响很小,这就是低耦合。
总之,代码的高内聚就是相关功能的代码组合在一起,实现某个特定的小功能,各个小功能需要关联起来才能实现整个大功能。
代码的低耦合就是某个特定的小功能的修改与变更对其他模块影响很小,方便针对某个单独的功能进行维护与更新。