什么是前端模块化?vue的组件算不算?

看了很多招聘要求都有提到“模块化”

我现在是用vue做开发的

我把分页封装成一个组件,使用的时候引入这个组件,这算不算模块化?

我把面包屑封装成一个组件,使用的时候引入这个组件,这算不算模块化?

我把弹窗封装成一个组件,使用的时候引入这个组件,这算不算模块化?

我提的这些算模块化吗

如果不是,能具体给个模块化的案例吗

阅读 3k
2 个回答

这个硬要说的话是组件化,并不是模块化。但是你说模块化大家也能明白什么意思。

模块化是个一般概念,这一概念也适用于软件开发,可以让软件按模块单独开发,各模块通常都用一个标准化的接口来进行通信。除了规模大小有区别外,面向对象语言中对象之间的关注点分离与模块化的概念基本一致。通常,把系统划分外多个模块有助于将耦合减至最低,让代码维护更加简单。任何一个类库实际上都是一个模块,无论其是Log4J、React还是Node。通常,开源和非开源的应用都会依赖于一个或多个外部类库,而这种依赖关系又有可能传递到其他类库上。 任何语言都有模块化的思想,比如java的 package, es6的 import/export 等,而js恰好经历了从无到有,而且js模块化规范比较多,AMD,CMD,UMD,以及es6官方的import/export

组件化的概念在前端用的比较大多。组件和模块表达的意思比较相近。 我这里讲的组件,是比较狭隘的组件,专指前端中构建页面的基本组成单位。组件是对业务逻辑的封装,一个页面由多个组件组成,组件又可以由其他组件组成。

更多请参考我写的模块化和组件化

算。
但是会来这里问这样一个问题,说明你对模块化的真正奥义还不明白 - 使用前端组件来解决工程问题,顶多只能算是摸着了模块化的门槛,离掌握它的内涵,尚有一段不算短的距离。
模块化是软件行业一个非常通用的概念。你没有看错,不只是前端,所有涉及到软件的方面,都不能不提到模块化。事实上,前端模块化的概念大部分来自于后端,这也是为什么有一部分前端框架中引用了极多的后端名词。
模块化要解决的是软件本身一定会越来越庞大这个无解的问题。既然不能阻止它的体积膨胀,那就只能从物理上将它切分成更小但是更多的,可以内部自治,对外提供服务的小单元。微服务,组件化,模块化,概念大同小异,核心价值诉求却是想通的。
所以,模块化的最核心的优势是,大事化小。降低复杂度,提供可复用,提高项目组的协作能力,这些都是副产品,但却是最为大家津津乐道的东西。

以上纯属个人理解,谈不上真理更算不上奥义。因为我一直认为,领悟软件开发中最核心的东西,永远需要身体力行,亲自实践。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题