web中模块化开发理解

1、什么是模块化开发?html

1.web开发中将项目的实现划分为许多模块,模块其实就是将功能相关的代码封装在一块儿,方便维护
,重用;模块之间经过API进行重组。jquery

2、为何要经过模块化的方式进行开发?web

1.高内聚低耦合,有利于团队做战,当项目很复杂的时候,将项目划分为子模块分给不一样的人开发api

,最后再组合在一块儿,这样能够下降模块与模块之间的依赖关系体现低耦合,模块又有特定功能体框架

现高内聚。模块化

2.可重用,方便维护,模块的特色就是有特定功能,当两个项目都须要某种功能的时候,咱们定义函数

一个特定的模块来实现该功能,这样只须要在两个项目中都引入这个模块就可以实现该功能,不需code

要书写重复性的代码;而且当需求变动该功能须要改变的时候,咱们直接修改该模块,这样就可以模块化开发

修改全部项目的功能,维护起来很方便。htm

3.模块化开发会引起大量的js被引入到页面,而这些模块之间仍是有依赖关系,体如今引入的顺序

,其实就是模块管理的问题,

3、模块化开发的实现方式:

1.函数方式:将某种功能的代码逻辑封装到函数里面,而后再将这些函数抽取到一个独立的文件,

实现重用。可是这种方式会致使暴露的全局函数数据量太多,会污染全局。

2.命名空间方式:其实就是暴露一个全局对象,而后把实现功能的函数挂到该对象下面,最为对象

的方法。缺点是对于某些函数咱们并不想为外界所调用,而自定义对象的方法对外都是公开的没法

保证该函数不被调用。

3.使用具备私有空间的对象来实现:这种方式解决了以上几种方式没解决的问题,可是不具有扩展

性。

var demo = (function() {

    function private() {

    }
    function public() {

    }
    return {
        public: public
    }
})();

4.使用自执行函数和window对象来实现:好比要制做一个demo模块

  • 自执行函数传入window.demo||{}表示若是原来全局中存在demo模块,那么就将其进行扩展,如

没有则建立一个空对象做为demo来初始化

  • 一样的传参数的方式也能够下降对第三方框架的依赖,好比该模块是在jquery的基础上面开发

的也就是说模块是调用jquery得api实现,若是有一个框架和jquery的api实现同样的功能此时咱们

就能够将这个模块依赖的框架修改成另外一个框架,经过改变全局对象的传入,而不影响模块的功能

(function(demo,$) {

    function private() {

    }
    demo.public:function () {
          $('.div').html('公有函数');
    }
    // 建立或者更新window的demo模块
    window.demo = demo;
})(window.demo || {},jQuery);
// 好比在此处修改传入的jQuery对象为zepto
相关文章
相关标签/搜索