1.为什么使用require.js?
使用之前,我的页面的js是这样的
data-main配置的是主要的js,我这里配置的是网站根目录下Scripts文件下的main.js,用于全局的配置。
data-entry是我扩展的属性,用于加载该页面独有的js。
以下为main.js代码:
var entry = $('[data-entry]').data("entry");
require([entry]);
});
其中require.config()方法配置js的路径,baseUrl指的是基目录,paths中配置的路径默认会在前方加上baseUrl的值;
shim参数配置js的依赖项和输出对象,如bootstrapselect依赖于jquery和bootstrap,laydate输出/返回的对象为laydate。
init: function () {
this.setOptions();
this.bindEvent();
self.getList();
},setOptions: function () {
this.btnQuery = $("#btnQuery");
this.divList = $("#divList");
},bindEvent: function () {
var self = this;
self.btnQuery.on("click",function () { self.getList(); });
},getList: function () {
var self = this;
$.post(self.divList.data("url"),{ channelCode: $.trim($("#ddlChannel").val()) },function (result) {
self.divList.html(result);
});
}
};
$(function () {
category.init();
});
});
define方法的第1个参数为数组,代表当前页面要加载的js,如上面所示,当前页面加载了jquery,utility,bootstracp,bootstracpselect这4个js,
第二个参数为回调函数,当第一个参数中的js异步加载完成后,会被调用,方法中的$对应的jquery返回的对象,Utility对应的unility返回的对象,这两个对象可以在回调函数的任何地方使用。
截止目前,我们已了解require.js的使用方法,如果开发其它页面,可以按需加载,如页面只需要jquery就够了,则只引入jquery即可:
3.注意事项
1.在以上代码中,由于bootstrapselect,laydate.utility配置的路径都以"/"开头,因此加载时不会被加上baseUrl的值,而jquery,bootstrap真正加载时会被加上baseUrl的值,即http://www.cdnxxx.com/hplus/js/juqery.min.js
2.paths中配置的路径默认都会加上.js,因此配置时应省略.js,否则会出错
以上这篇基于require.js的使用(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。
原文链接:https://www.f2er.com/js/36604.html