什么是模块化?和组件化,jQuery插件这种有什么区别?
一直不是很明白什么是模块化,我学过一点儿node,也用过里面的module.exports,require这些,我自己理解的是将不同功能封装成不同的模块,然后使用的时候来调用,那jquery插件算是模块化吗?组件化又是什么?js模块化具体都需要什么?还有模块化需要学习哪些知识?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果你只是不知道“什么是模块化”,那你想想乐高玩具,一堆小零件,最后可以组装成各式各样的“飞机”、“坦克”、“轮船”。其中,各个小零件,就是模块化,也正是因为有了模块化,才是的乐高变得那么有乐趣,那么多变。
组件是稍微略高一级的抽象,譬如:用几个小零件拼出一堆“翅膀”,这样当小伙伴也想组装一个“飞机”的时候,关于“翅膀”,他不需要自己从头拼起,直接把我拼好的“翅膀”拿去就好了。这里的“翅膀”,就是组件化。
广义上讲,
jquery
的插件算是模块化的(具备逻辑的也可以叫组件了),我们通常不那么热衷于说jquery
是模块的,是因为我们通常讲的模块化,实际上是一些通用规范描述的标准,譬如:AMD,CommonJS,ES2015个人理解:模块一般说的是功能,一个功能作为一个模块。比如注册功能,整个这个流程是一个模块。编程模块化有助于并行开发,相互不影响,能单独进行功能测试,所有模块都开发完成后,在集成到一起进行集成测试,然后交付。现在模块化开发很流行,一个团队开发,基本上一个人负责一块,最后再组合到一起。
组件化则更接近编码,将页面拆分成几个多个可服用的组件。组件是单一功能的代码片段,可以通过参数来显示出不同的状态,建议稍微看下react,组件化做的很详细。组件化就类似于积木一样,开发的最后结果是最终程序,但实际上是开发的单个积木零件,最后组合到一起。组件化能提高代码的复用率,但感觉后期维护性不那么好。一旦需求变更,可能需要做较大改动。
项目地址:https://github.com/chunmu/PDD-App
关于模块化:
我最近有一个搭建好骨架的项目,electron+redux+webpack+react
第一种是资源模块化,webpack把所有静态资源加载进js文件,当成一个个的资源模块,在页面查看图片的时候都是一堆堆的base64类型数据
第二种是程序开发的功能模块化,比如在electron中renderer和ipcMain之间的通信占了很大一个功能点,我把它抽离出来,暴露出api..
关于组件化:
比较react可以很好的实现组件化开发,比如各个页面之间通用的<header></header>,比如每个页面用到的优化的滚动条,都可以独立出一个组件
效果图:
贴上一段代码: