一、equireJS 和 SeaJS 都是很不错的模块加载器,两者区别如下
1. 两者定位有差异。RequireJS 想成为浏览器端的模块加载器,同时也想成为 Rhino / Node 等环境的模块加载器。SeaJS 则专注于 Web 浏览器端,同时通过 Node 扩展的方式可以很方便跑在 Node 服务器端
2. 两者遵循的标准有差异。RequireJS 遵循的是 AMD(异步模块定义)规范,SeaJS 遵循的是 CMD
RequireJS会让你以不同于往常的方式去写JavaScript。你将不再使用script标签在HTML中引入JS文件,以及不用通过script标签顺序去管理依赖关系。也不会有阻塞(blocking)的情况发生
二、RequireJS的模块入口
script标签上一个自定义属性:data-main="main",等号右边的main指的main.js。这个main指主模块或入口模块。
main.js中就两个函数调用require.config和require。
require.config用来配置一些参数,它将影响到requirejs库的一些行为。
require.config的参数是一个JS对象,常用的配置有baseUrl,paths等。
<script data-main="js/main" src="require.js.js"></script>
main.js
1 require.config({ 2 paths: { 3 jquery: ‘jquery-1.7.2‘ 4 } 5 }); 6 7 require([‘jquery‘], function($) { 8 alert($().jquery); 9 });
paths参数,使用模块名“jquery”,其实际文件路径jquery-1.7.2.js(后缀.js可以省略)。
我们知道jQuery从1.7后开始支持AMD规范,即如果jQuery作为一个AMD模块运行时,它的模块名是“jquery”。注意“jquery”是固定的,不能写“jQuery”或其它。
注:如果文件名“jquery-1.7.2.js”改为“jquery.js”就不必配置paths参数了。
一、equireJS 和 SeaJS 都是很不错的模块加载器,两者区别如下
一、equireJS 和 SeaJS 都是很不错的模块加载器,两者区别如下
时间: 2024-10-11 01:02:47