認識Require

  1. 加載require.js文件javascript

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

  2. 加載主模塊文件css

  經過<script>標籤設置 data-main="js/main" 加載主模塊文件。java

  3. 異步加載require.js文件 jquery

  設置 defer async="true" 實現多個瀏覽器兼容異步加載。json

    4. 路徑配置瀏覽器

   在main.js的頂部加入下面的代碼異步

require.config({
	baseUrl: "js/",
  paths: {
		"jquery": "jquery.min",
		"underscore": "underscore.min",
		"backbone": "backbone.min"
	}
});

  5. 加載一個jquery.js文件async

define(['jquery'],function ($){
	 $(function(){
	 	//console.log('jquery已經加載。');
	 });
});

  6. 加載多個文件 函數

require(['jquery', 'underscore', 'backbone'], function ($, _, Backbone){
	$(function(){
	 	 //..
	});
});

  7. 加載自定義模塊 ui

//加載key/value格式模塊 
define(['jquery','jsonobj'],function ($,json){
	 $(function(){
	 	 console.log(json.name +'/'+ json.age);
	 });
});
//jsonobj.js
define({
	'name': 'lbs',
	'age': 10
});
//加載一個函數模塊
define(['jquery','setColor'],function ($,O){
	$(function(){
	 	O.setColor();
	 });
});
//setColor.js
define(function(){
	var color = function (){
    document.getElementsByTagName('body')[0].style.backgroundColor = 'red';
  };
  return {
      setColor: color
	};
});
//加載一個依賴關係的函數模塊
define(['jquery','color'],function ($,O){
	$(function(){
	 	O.setColor();
	 });
});
//color.js
define(['jquery'],function($){
	var color = function(){
    $('body').css('background','red');
  };
  return {
      setColor: color
	};
});

  8. 其餘配置選項 

//加載非AMD標準的模塊文件(underscore,backbone某些版本不符合AMD標準)
require.config({
    baseUrl: "js/",
    paths: {
        "jQuery": "jquery.min",
        "underscore": "underscore-min",
        "backbone": "backbone-min"
    },
    shim: {
        'underscore': {
            exports: '_'
        },
        'backbone': {
            deps: ['underscore', 'jQuery'],
            exports: 'Backbone'
        }
    }
});
//shim屬性定義不符合AMD標準加載模塊文件的輸出變量(exports)和依賴文件(deps)
//加載對應模塊文件
require(['backbone'], function(Backbone){
    var person = Backbone.Model.extend({
        defaults: {
            name: 'lbs',
            age: 10
        }
    });
    var me = new person();
    console.log( me.get('name') +'/'+ me.get('age') );
});
相關文章
相關標籤/搜索