index.htmlhtml
<!doctype html> <html> <head> <title>requirejs</title> <meta charset="utf-8"> <script data-main="js/main" src="js/require.js"></script> </head> <body> </body> </html>
main.js 合併js功能jquery
require.config({ // baseUrl: 'js/lib', 若是加載的這三個js不和main在一個目錄下,就這樣配置這個參數,或者直接寫網址路徑 paths: { underscore: 'underscore.min', backbone:'backbone.min', jquery: 'jquery-1.9.1.min', math :'math' }, /* shim屬性,專門用來配置不兼容的模塊。具體來講,每一個模塊要定義(1)exports值(輸 出的變量名),代表這個模塊外部調用時的名稱;(2)deps數組,代表該模塊的依賴性。 */ shim: { 'underscore':{ exports: '_' }, 'backbone': { deps: ['underscore', 'jquery'], exports: 'Backbone' } } /*jQuery的插件能夠這樣定義 shim: { 'jquery.scroll': { deps: ['jquery'], exports: 'jQuery.fn.scroll' } } */ }); // require(['jquery'], function($) { // alert($().jquery); // }); require(['jquery', 'underscore', 'backbone'], function ($, _, Backbone){ // some code here alert($().jquery); }); // 若是不依賴其餘模塊 require(['math'],function(math){ alert(math.add(1,2)) }) // domready插件,能夠讓回調函數在頁面DOM結構加載完成後再運行。 require(['domready!'], function (doc){ // called once the DOM is ready }); /* require()函數接受兩個參數。第一個參數是一個數組,表示所依賴的模塊, 上例就是['moduleA', 'moduleB', 'moduleC'],即主模塊依賴這三個模塊;第二個參數是一個回調函數, 當前面指定的模塊都加載成功後,它將被調用。加載的模塊會以參數形式傳入該函數,從而在回調函數內部就 能夠使用這些模塊。 */ /* require()異步加載moduleA,moduleB和moduleC,瀏覽器不會失去響應;它指定的回調函數,只有前面的模塊 都加載成功後,纔會運行,解決了依賴性的問題。 */ /* 一、data-main屬性 二、require.config方法 三、require函數 */
math.js 自定的js數組
// 這種定義 是不依賴其餘模塊 define(function(){ var add = function( x , y){ return x+y ; } return{ add : add } }); // 不然 這樣定義 // define(['mylib'],function(mylib){ // function foo(){ // mylib.doSomething(); // } // return { // foo : foo // }; // })