zoukankan      html  css  js  c++  java
  • require.js

    前面我们已经初步认识了模块化,今天就更深入的了解一下模块化!下面是我今天所学到的,虽然还有不懂的,后面我会弄懂的,下面是我分享的今天的收获!

    模块化的规范:我们必须要用同样的方法来写,如果不是这样,我们各自写各自的,那样就乱了!Javascript模块规范共有两种:CommonJSAMD

    CommonJS中,有一个全局性方法require(),require()用于加载模块

    比如:

    var math = require('math');

    math.add(2,3); // 5

    AMD是”Asynchronous Module Definition”,是异步模块化定义。

    AMD也采用require()语句加载模块,require有两个参数,是用异步方法加载模块,模块的加载不会影响后面的代码运行,但是只要依赖这个模块的语句都会定义在一个回调函数中,等加载完成后,回调函数才会运行!写法如下:

    require([module], callback);(第一个参数[module],是一个数组,里面的成员就是要加载的模块;第二个参数callback,则是加载成功之后的回调函数

    代码:

    require(['math'], function (math) {

    math.add(2, 3);

    });

    require.js加载的模块是按照AMD的规范写的!

    比如:

    假如现在有一个math.js文件,它定义了一个math模块。那么,math.js就要像这样写:

    // math.js define(function (){

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

    };

    return { add: add };

    });

    加载方法如下:

    // main.js

    require(['math'], function (math){

    alert(math.add(1,1));

    });

    模块必须采用特定的define()函数来定义。如果一个模块不依赖其他模块,那么可以直接定义在define()函数之中!

    如果这个模块还依赖其他模块,那么define()函数的第一个参数,必须是一个数组,指明该模块的依赖性

    例如:

    define(['myLib'], function(myLib){

    function foo(){ myLib.doSomething();

    } return {

    foo : foo };

    });

  • 相关阅读:
    mysql limit
    random.nextint()
    “MSDTC 事务的导入失败: Result Code = 0x8004d00e。
    JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
    iOS ERROR: unable to get the receiver data from the DB 解决方式
    STL algorithm算法mov,move_backward(38)
    看 《一次谷歌面试趣事》 后感
    C++胜者树
    拿年终奖前跳槽,你才是赢家!
    日期字符串格式化成日期/日期格式化成指定格式字符串
  • 原文地址:https://www.cnblogs.com/watchmen/p/5014507.html
Copyright © 2011-2022 走看看