我的观点
我是一名刚踏入工作的小白,我的公司前端缺少,我就顺其自然的负责前端架构设计,因为公司使用的requirejs开发,出现了很多问题,初始架构也不是本人做的,刚开始的时候真是一脸懵逼,过了这么长时间,我对模块化和组件化——他们是一个东西又不是一个东西。
模块化
刚刚开始开发前端的时候,对前端种种设计模式并不是特别熟悉,模块化而言更多是将公共的方法抽离出来,requirejs的做用就出来了,将抽离的东西包装一下变成一个模块,然后抛出需要的对接接口,让其他的模块调用可以通过该对接接口使用其模块
模块化这个过程中,要将对应的模块化封装起来,跟每个需要用到模块形成依赖关系,实现requirejs的异步加载js
define引入依赖文件 return抛出自己依赖
使用es6等模块化的朋友类似
组件化
因为是产品开发,老总提出一个意见,将前端的模块化,用get,set的形式实现又不影响ie8,唯一能想到的就是在每个功能模块中加上,getvalue setvalue 实则并不是高等级浏览器的get set 的基类,而是用当前对象做了一个 在父级模块那里做了一个内存池,将每个模块本身传递回来,调用时去查找该内存池,因为我们的东西父级有子级,子级有可以渲染父级,这个时候就出现循环依赖的问题了,然后就开始了,漫长的解决循环依赖的过程,首先将getvalue setvalue 父级的方法 用事件的形式包装起来,当出现需要时触发该事件。然后蛋疼的事也出现了,没人能理解代码表达的意思,使得代码维护难度极高。 在这里就先告一段落了。
说了这么多组件化到底是什么呢,在我感觉中,组件化就相当于模块化的升级,将数据这些,渲染这些进行了更好的封装,
用状态管理,发布订阅等进行异步编程,达到了每个组件做自己的事情。
总结
组件化和模块化,其实都是现在我们前端开发必不可少的思想,现在的前端,react ,view ,Angular,都用的组件化的思想,将我们的前端开发变得便捷,必然也会导致一些问题,基础能力薄弱,总而言之,前端的基础还是必须要学习好,面对对象的思考方式一定要具备。也得感谢前辈,大佬们的博客,让我们后辈去学习。
对于我现阶段理解—组件化就是模块化思想的进步的体现。
第一次发博客,还望大佬们多多指教QAQ