requirejs使用

1.定义模块:

/*
 *c.js
 *本例创建了一个模块,它依赖于./a.js与./b.js。
*/
define(['./a','./b'],function(a,b){
	var c = function(){
		var tmp = a.getName();
		var tmp2 = b.getName();
		return tmp != tmp2;
	}
});
/*
 *c.js
 *本例创建了一个模块,无任何依赖
*/
define(function(){
	var c = function(){
		var init = function(){

		};
		return init;
	}
});
/*
 *c.js
 *本例创建了一个模块,并指定了模块名称
*/
define('main/c',['./a','./b'],function(a,b){
	var c = function(){
		var tmp = a.getName();
		var tmp2 = b.getName();
		return tmp != tmp2;
	}
});

其中第三种不常用。
第三种方法一般有优化工具生成。因为显示指定模块名称,会使得模块更不具备移植性—就是说若你将文件移动到其他目录下,你就得重命名。一般最好避免对模块硬编码,而是交给优化工具去生成。优化工具需要生成模块名以将多个模块打成一个包,加快到浏览器的载入速度。
目录如下:
–my
—-a.js
—-b.js
—-c.js
2.模块调用

//a.js
define('a',['b','c'],function(){
	return {
		name:'a',
		say:function(something){
			console.log(something);
		}
	};
});

//d.js
require(['a'],function(a){
	console.log(a.name);
});

从上面可以看出difine和require使用方法类似,两者区别是什么呢?
3.define与require区别

define(['./jquery'], function($) { console.log($); });
require(['./jquery'], function($) { console.log($); });

区别:
a.define用来定义,require用来加载。define定义的模块可以被其它模块调用,require不行。
b.虽然都能加载模块,但是define比require多一个接口的返回。
参考文章:
RequireJS进阶:模块的定义与加载
requirejs中define和require的定位以及使用区别?

此条目发表在JavaScript分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注