关于模块化和组件化的一些认识

从几个月前开始接触前端,我就听到一句话:保持内容、样式、行为的分离是一个良好而且必要的习惯。因此我一直以来的模式是:HTML=>CSS=>JavaScript,也就是先把内容填充好了,而后写CSS,一看大概页面差很少了,用JS写一些行为,好比点击啦滚动啦什么的,而后万事大吉!前端

然而早就据说了webpack,最近开始学习,而后发现须要nodeJS,而后又了解了解nodeJS,又知道了commonJS,又接触到了模块化、组件化这些词,意识到我本来的方式好像并非内容样式行为分离的模式。首先,JS代码和DOM强耦合,也就是HTML里随便改个class或者id,可能致使整个页面完蛋,因此这种方式只能说是形离神不离。node

因此我又查阅相关资料,页面能够说是由一个个组件构成,组件又由一个个实现某功能的模块构成,因此模块化和组件化能够实现代码的复用,有一篇文章提出了一种说法:webpack

不少人以为模块化开发的工程意义是复用,我不太承认这种见解,在我看来,模块化开发的最大价值应该是分治,是分治,分治!(重说三)。web

无论你未来是否要复用某段代码,你都有充分的理由将其分治为一个模块。闭包

因此个人理解是,将页面分红一个个组件,各组件互不干扰,分别开发,可随意组合,组件包括有JS模块和CSS模块,JS模块利用命名空间、闭包等方式将想要暴露的属性暴露出来(或者AMD/CMD/ES6 Module等方式)。模块化

 

目前依然在学习中,理解有限,不免有错,深刻学习后再改。组件化

相关文章
相关标签/搜索