版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhanghui_hn/article/details/86567053
本篇文章主要介绍requireJS模块化的几种方式
参考:https://requirejs.org/docs/api.html#define
- 定义含简单的键值对的模块
define({
color:"red",
size:"12"
});
定义含简单函数的模块
define(function(){
return {
color:"red",
size:"12"
};
});
- 定义带依赖函数的模块
define(["./cart", "./inventory"], function(cart, inventory) {
return {
color: "blue",
size: "large",
addToCart: function() {
inventory.decrement(this);
cart.add(this);
}
}
}
- 将函数定义为一个模块
define(["my/cart", "my/inventory"],
function(cart, inventory) {
return function(title) {
return title ? (window.title = title)
: inventory.storeName + ' ' + cart.name;
}
}
);
- 指定一个Jsonp服务依赖
define(['require'], function(require) {
'use strict';
require(['http://date.jsontest.com/?callback=define'], function(data){
console.log(data)
});
});
- 循环依赖
define(["require", "a"],
function(require, a) {
// 如果 a.js 依赖了 b, 则此时 a、b 形成了循环依赖,a的值为空
return function(title) {
// 调用 require 再次加载下 a
return require("a").doSomething();
}
}
);
- 取消模块的定义
requirejs.undef('moduleName');