RequireJs

190 阅读1分钟
// RequireJS有两个主要方法(method): define()和require()。

// define()的回调函数需要有一个返回值作为这个模块定义。
// 这些类似被定义的模块叫作AMD (异步模块定义)


// 原理:data-main属性加载入口文件,在底层动态创建script标签,用正则表达式匹配加载的入口文件名,动态的创建标签,动态的加载。
// 底层是动态创建script标签来加载js文件,异步加载,使用的是async(异步的)。底层通过正则解析字符串,找require。


// 动态加载js的原理:
// var   document.createElement(oScript);
// oScript.src=index;
// Document.body.appendChild();
// 动态创建script标签来加载js文件
// 异步:不用等待。在script里面加上async

<script src="require.js"  data-main="xxx.js"></script>
// xxx.js是入口文件,页面级的JS,比如index.js,可以不写.js,直接写index
require(['a'],function(add2){
    alert(add2(4+5));
});

    
define(function(){
    function add(a,b){
    return a + b;
    }
    return add
});

// 模块与函数的区别:模块是粒度更大的代码的抽象和封装?

// AMD依赖前置require.js  AMD 是提前执行    AMD 推崇依赖前置   AMD 推崇复用接口    异步模块定义
// CMD 依赖就近sea.js     CMD 是延迟执行    CMD 推崇依赖就近   CMD 推崇单用接口    通用模块定义