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 };

    });

  • 相关阅读:
    POJ3094 UVALive3594 HDU2734 ZOJ2812 Quicksum【进制】
    UVALive5583 UVA562 Dividing coins
    POJ1979 HDU1312 Red and Black【DFS】
    POJ1979 HDU1312 Red and Black【DFS】
    POJ2386 Lake Counting【DFS】
    POJ2386 Lake Counting【DFS】
    HDU4394 Digital Square
    HDU4394 Digital Square
    UVA213 UVALive5152 Message Decoding
    UVA213 UVALive5152 Message Decoding
  • 原文地址:https://www.cnblogs.com/watchmen/p/5014507.html
Copyright © 2011-2022 走看看