认识Require
1. 加载require.js文件
<script type="text/javascript" src="js/require.js" data-main="js/main" defer async="true" ></script>
2. 加载主模块文件
通过<script>标签设置 data-main="js/main" 加载主模块文件。
3. 异步加载require.js文件
设置 defer async="true" 实现多个浏览器兼容异步加载。
4. 路径配置
在main.js的顶部加入下面的代码
require.config({ baseUrl: "js/", paths: { "jquery": "jquery.min", "underscore": "underscore.min", "backbone": "backbone.min" } });
5. 加载一个jquery.js文件
define(['jquery'],function ($){ $(function(){ //console.log('jquery已经加载。'); }); });
6. 加载多个文件
require(['jquery', 'underscore', 'backbone'], function ($, _, Backbone){ $(function(){ //.. }); });
7. 加载自定义模块
//加载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') ); });