舉例---require()主要用於加載模塊node
var math = require('math'); math.add(2,3); // 5
問題:愈來愈多的項目採用「模塊化」,可是,對於瀏覽器而言,全部的模塊化的語言都放置在---服務器端,頁面的渲染取決於網速的快慢。若是待加載的數據過多,會致使瀏覽器處於假死的狀態。因此:異步加載應時而生jquery
require([module], callback); require(['math'], function (math) { math.add(2, 3); });
解釋上面的函數:math這個模塊加載完畢,纔會執行math.add這個函數。因此,瀏覽器就不會產生假死的狀態編程
1):實現js文件的異步加載,避免網頁失去響應數組
2):管理模塊之間的依賴性,便於代碼的編寫和維護瀏覽器
<script src="js/require.js" data-main="js/main"></script>
加載徹底部的require以後,就要加載咱們本身編寫的代碼---main.js服務器
require.config({}); 咱們對模塊的加載行爲進行自定義。path:表示指定各個模塊的加載路徑。異步
require.config({ paths: { "jquery": "jquery.min", "underscore": "underscore.min", "backbone": "backbone.min" } });
2.模塊必須採用特定的define()函數來定義。若是一個模塊不依賴其餘模塊,那麼能夠直接定義在define()函數中,若是還依賴於其餘的模塊,那麼define()函數的第一個參數,必須是數組,指明該模塊的依賴性,因而先加載myLib.js這個文件模塊化
define(['myLib'], function(myLib){ function foo(){ myLib.doSomething(); } return { foo : foo }; });
requireJs能加載非規範的模塊。若是要加載它們,必須先定義它們的特徵。函數
require.config({ shim: { 'underscore':{ exports: '_' }, 'backbone': { deps: ['underscore', 'jquery'], exports: 'Backbone' } } });