Skip to content

AMD : 浏览器端

  • 异步模块定义

    模块是异步加载的(浏览器环境,肯定不能同步加载)

    提前执行

  • require.js

  • 基本语法

  • 定义暴露模块: define([依赖模块名], function(){return 模块对象})

  • 引入模块: require(['模块 1', '模块 2', '模块 3'], function(m1, m2){//使用模块对象})

  • 配置:

js
require.config({
  //基本路径
  baseUrl: "js/",
  //标识名称与路径的映射
  paths: {
    模块1: "modules/模块1",
    模块2: "modules/模块2",
    angular: "libs/angular",
    "angular-messages": "libs/angular-messages",
  },
  //非AMD的模块
  shim: {
    angular: {
      exports: "angular",
    },
    "angular-messages": {
      exports: "angular-messages",
      deps: ["angular"],
    },
  },
})

定义与使用

js
define("moduleA", function() {
  return {
    a: 1,
  }
})
js
define("moduleB", ["moduleA"], function(moduleA) {
  return {
    b: moduleA.a,
  }
})