【JavaScript】前端模块化:CommonJS、AMD、ES6、CMD规范。【转载,总结】

一、前端模块化

  1,什么是模块化:

       将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起。

       块的内部数据与实现是私有的,只是向外部暴露一些接口(方法)与外部其他模块通信。

  2,模块化的进程:

   1)全局function模式:将不同的功能封装成不同的全局函数
         编码:将不同的功能封装成不同的全局函数
         问题:污染全局命名空间, 容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系

    2)namespace模式 : 简单对象封装
         作用: 减少了全局变量,解决命名冲突
         问题: 数据不安全(外部可以直接修改模块内部的数据)

    3)IIFE模式:匿名函数自调用(闭包)
         作用: 数据是私有的, 外部只能通过暴露的方法操作
         编码: 将数据和行为封装到一个函数内部, 通过给window添加属性来向外暴露接口
         问题: 如果当前这个模块依赖另一个模块怎么办?
      IIFE模式增强 : 引入依赖

    4)js模块化和MVC设计模式:

    5)AMD和CMD:
         AMD:Asynchronous Module Definition,异步模块。主要依赖RequireJS
         CMD:common module definition,通用模块定义。主要依赖SeaJS

    6)ES6:
         导出模块:export    引入模块:import

    7)webpack:
         模块打包器,将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求
 

  3,模块化的好处:

        避免命名冲突(减少命名空间污染)
        更好的分离, 按需加载
        更高复用性
        高可维护性
        依赖关系的管理

  二、模块化规范:

  1,CommonJs:

  2,AMD:

  3,CMD:

  4,ES6:

发现自己学的,总结的都是这个转载的,我先学习,晚点出总结,哈哈。

http://web.jobbole.com/95559/

猜你喜欢

转载自blog.csdn.net/godsor/article/details/88733088