经过require
加载模块并执行,返回一个引用文件的export
对象.css
var test = require('./test');
jquery
该方式属于同步加载,适用于服务器端。浏览器更适合异步加载方式。es6
推崇的是依赖前置,提早执行。(一些该页面不须要的模块也加载了进来)浏览器
// 配置路径 require.config({ baseUrl: "js/lib", paths: { "jquery": "jquery.min", "underscore": "underscore.min" } }); // 模块加载 require(["jquery", "underscore"], function($, _) { $(body).css("background", "#6fc"); var result = _.map([1, 2, 3], function() { return num * 3; }); }) // 自定义模块,第一个参数为可选,表示模块依赖的模块 define(["underscore"], function(_) { var minNumIndex = function(arr) { return arr.indexOf(_.min(arr)) }; return { minNumIndex: minNumIndex }; })
推崇依赖就近,延迟执行。(也就是按需加载)服务器
// 定义模块 math.js define(function(require, exports, module) { var $ = require("jquery.js"); var add = function(a, b) { return a + b; }; export.add = add; }); // 加载模块 seajs.use(["math.js"], function(math) { var sum = math.add(1, 2) });
export
=> 导出模块
import
=> 引入模块异步
// math.js const NUM = 1; const add = (a, b) => a + b; export { add } // 引入模块 import add from "./math";