• require.js入门


    AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

    require([module], callback);

    在CommonJS中,有一个全局性方法require(),用于加载模块。假定有一个数学模块math.js,就可以像下面这样加载。

    var math = require('math');
    

    在define下也有所不同

    1.对于依赖的模块,AMD(Asynchronous Module Definition)异步模块加载机制 是提前执行,CMD(common module definition)模块定义规范 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible.

    2. CMD 推崇依赖就近,AMD 推崇依赖前置。看代码:
    // CMD
    define(function(require, exports, module) {
    var a = require('./a')
    a.doSomething()
    // 此处略去 100 行
    var b = require('./b') // 依赖可以就近书写
    b.doSomething()
    // ... 
    })
    
    // AMD 默认推荐的是
    define(['./a', './b'], function(a, b) { // 依赖必须一开始就写好
    a.doSomething()
    // 此处略去 100 行
    b.doSomething()
    ...
    }) 
    

    说道正题。。

    先去官网下载require.js放到网页底部加载,加载一个main.js

    <script type="text/javascript" src="require.js" defer async="true" data-main="main"></script>
    

    main.js下面放

    require(['math'], function (math){
        alert(math.add(1,1));
      });
    

    math.js下面放

    define(function (){
        var add = function (x,y){
          return x+y;
        };
        return {
          add: add
        };
      });
    

     本文参考

    作者:玉伯
    链接:https://www.zhihu.com/question/20351507/answer/14859415
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

    和阮一峰的require.jshttp://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.html

  • 相关阅读:
    JDBC连接数据库
    Promise的基本用法
    Cookie、LocalStorage 与 SessionStorage的区别在哪里?
    判断时间大小,数值大小
    控制input文本框只能输入正整数
    利用layer弹框代替alert效果,且可以增加callback函数
    input 只能输入数字且控制位数
    递归函数
    分页插件,直接把返回值赋过去即可
    获取选中checkbox的value值
  • 原文地址:https://www.cnblogs.com/yanwei-sun/p/5255597.html
Copyright © 2020-2023  润新知