模块化开发

1、AMD(异步模块定义)

   是RequireJS在推广过程中对模块化定义的一个规范。

   AMD是一个规范,RequireJS是它的实现。

   RequireJS可以实现一个异步加载的功能,可以动态的异步的加载JS文件

   特点: 依赖前置,将依赖的包放在第一个数组参数中,通过参数接收,得到加载的需要用到的包。在定义的时候,将需要的包就定义好

   defined(['path/name'], function(package) {

    callBack

    });

2、CMD(同步模块定义)

  是SeaJS在推广过程中对模块化定义的一个规范。

  CMD是一个规范,SeaJS是它的实现。

   SeaJS实现同步的,动态的加载JS文件

   特点: 依赖就近,在什么地方使用,在什么地方加载

   defined(function(require, exports, module) {

    let Jquery = require('jquery');

    });

  3、CommonJS

  是一个规范,通过module.exports实现,前端浏览器是不支持CommonJS规范的,CommonJS是在NodeJS中被服务器端支持的。

  功能: 划分模块

  语法:

  exports.packageName = function() {};

  //or 匿名输出

  module.exports =  {}

  通过require导入

   4、ES6导入导出

  1)、匿名导出

    默认,匿名输出

    export default {}

    //导入

    import name from './fileName'

  2)、具名导出

    export let something  = {} 

    导入的过程是一个解构的过程

    import {something } from './fileName'

    //导入也可以用另一种方式

    import  *  as  tool  from './fileName'

    可以通过tool.something 调用

    //import 可以进行异步加载

 

posted @ 2017-12-27 17:22  九萌萌  阅读(150)  评论(0编辑  收藏  举报