require.js

作者: daixi859 | 来源:发表于2017-05-11 00:19 被阅读8次

    RequireJS 是一个JavaScript模块加载器,非常适用在浏览器中使用。

    引入库

    其中script标签的data-main属性表示入口文件的引入路径

    <script data-main="js/main.js" src="./js/require.js"></script>
    

    require.js三板斧:require define require.config

    • require: 调用模块
    • define: 定义模块
    • require.config: 配置模块

    require:

    // 第一个参数依赖的模块,第二个为回调函数
    // 注意:a.js表示相对于html文件的路径,写a是相对于script标签的data-main定义文件的相对路径
    // 回调函数参数表示a,b模块返回的对象
    // requirejs AMD规范,提前把要依赖的模块家载好,再执行后面的回调
    // seajs  CMD规范,不需要提前执行,顺序执行加载(即使用到的时候执行加载)
    require(['a', 'b'], function(a, b) {
        console.log(a.sum(2, 5));
        console.log(b.mult(2, 5));
    });
    

    define:

    // a.js
    define(function() {
        function sum(a, b) {
            return a+b;
        }
    
        return { // return 表示暴露给外面的对象
            sum : sum
        };
    });
    // b.js
    define(function() {
        function mult(a, b) {
            return a * b;
        }
    
        return {
            mult : mult
        };
    });
    

    require.config:

    require.config({
        baseUrl : 'js', // 根目录
        paths: {
            tools: ['libs/tools'] // 定义模块名与模块文件的映射关系,也可以设置数组,前面如果找不到就找后面的,一般用户cdn的备选方案
        }
    })
    
    require(['a', 'b', 'tools'], function(a, b, tools) {
        console.log(a.sum(2, 5));
        console.log(b.mult(2, 5));
        console.log(tools.sayHello('Jack'));
    });
    
    // libs/tools.js
    define(function() {
        function hello(name) {
            return 'hello ' + name + ' !';
        }
    
        return {
            sayHello: hello
        };
    })
    

    相关文章

      网友评论

        本文标题:require.js

        本文链接:https://www.haomeiwen.com/subject/wbsntxtx.html