requireJS 用法
requireJS使用教程 2.0
常用方法
requirejs.config : 为模块指定别名
requirejs : 将写好的模块进行引入,根据模块编写主代码
define : 编写模块
html
<script src="../js/require.js" data-main='../js/main.js'></script>
main.js
require.config({
paths: {
jquery: 'jquery-2.1.4'
}
});
requirejs(['jquery', 'validate'], function($, validate){
validate.test();
})
validate.js
define(['jquery'], function($){
return {
test: function(){
$('body').css('backgroundColor', 'red');
}
}
});
以上就是简单用法
实际情况
1、datetimepicker 不支持 requirejs,需要用到shim参数
require.config({
shim: {
'bootstrap': ['jquery'],
'datepicker': ['bootstrap'],
},
paths: {
jquery: 'jquery-2.1.4',
bootstrap: 'bootstrap',
datepicker: 'bootstrap-datetimepicker'
}
});
requirejs(['jquery', 'bootstrap', 'datepicker', 'modules/datepicker'], function($, a, b, datepicker){
datepicker.datepicker('date');
})
module
define(['jquery'], function($){
return {
datepicker: function(id){
$('.'+id).datetimepicker({
format: 'YYYY.MM.DD'
});
}
}
});
加载js
RequireJS以一个相对于baseUrl的地址来加载所有的代码,而baseUrl一般设置到与该属性相一致的目录。也可以通过config函数设置。
有时候你想避开"baseUrl + paths"的解析过程,而是直接指定加载某一个目录下的脚本。此时可以这样做:如果一个module ID符合下述规则之一,其ID解析会避开常规的"baseUrl + paths"配置,而是直接将其加载为一个相对于当前HTML文档的脚本:
以 ".js" 结束.
以 "/" 开始.
包含 URL 协议, 如 "http:" or "https:".
项目库/三方库
www/ index.html js/ app/ sub.js lib/ jquery.js canvas.js app.js
有些库并没有使用define()来定义它们的依赖关系,你必须为此使用shim config来指明它们的依赖关系。 如果你没有指明依赖关系,加载可能报错。这是因为基于速度的原因,RequireJS会异步地以无序的形式加载这些库。
data-main
你在main.js中所设置的脚本是异步加载的。所以如果你在页面中配置了其它JS加载,则不能保证它们所依赖的JS已经加载成功。
定义模块
define({
color: 'black',
size: 4
});
define(function(){
alert('set up');
return {
color: 'black',
size: 4
}
});
存在依赖的函数式定义:http://www.requirejs.cn/ 1.3.3
将模块定义为函数。返回函数
特殊情况处理:
1、浏览器全局变量注入型的库,使用shim。比如 jquery.ui 依赖qjuery
2、CommonJS模块格式,需要通过简单包装来实现。
接下来练习一个commonJS的例子
实际中碰到的问题
1、模块A引入模块B
方法一:在main文件中,通过函数的参数引入
方法二:在模块A中引入,如果某个方法用不到模块B,则debugger时,看不到模块B,真正实现按需加载。
requireJS 用法的更多相关文章
- requirejs教程(一):基本用法
介绍 RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一.最新版本的RequireJS压缩后只有14K,堪称非常轻量.它还同时可以和其他的框架协同工作,使 ...
- RequireJS学习资料汇总
入门系列 [1]阮一峰 RequireJS用法 [2]RequireJS入门指南 文档系列 [1]RequireJS中文文档 [2]RequireJS英文文档 代码实践 知识扩展 [1]计算机干了什么
- RequireJS学习资料
RequireJS学习资料汇总 入门系列 [1]阮一峰 RequireJS用法 [2]RequireJS入门指南 文档系列 [1]RequireJS中文文档 [2]RequireJS英文文档 代码 ...
- requirejs学习(一)
requirejs学习(一) 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,各种依赖(插件等)也逐渐增多,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在的需求,我们 ...
- requirejs的用法
requirejs的用法 2014年11月6日 17164次浏览 之前我的一片文章介绍过requirejs,具体地址是:http://www.haorooms.com/post/RequireJS_m ...
- RequireJS shim 用法说明
RequireJS中如果使用AMD规范,在使用的过程中没有太多的问题,如果加载非AMD规范的JS文件,就需要使用Require中的shim. require.config({ paths:{ jque ...
- 模块化 Sea.js(CMD)规范 RequireJS(AMD)规范 的用法
插入第三方库AMD CMD都 一样 如:JQ(再JQ源码里修改) 使用seajs的步骤 1.HTML里引入seajs <script src="./lib/sea.js"& ...
- (转)RequireJS shim 用法说明
RequireJS中如果使用AMD规范,在使用的过程中没有太多的问题,如果加载非AMD规范的JS文件,就需要使用Require中的shim. require.config({ paths:{ jque ...
- requirejs的用法(二)
这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的 ...
随机推荐
- Linux学习笔记——查看Linux系统信息的方法
由于Linux的发行版本比较多,并且有些差异性,所以,分析问题时我们常常需要知道自己的Linux系统的版本信息,以下是我搜集到的一些方法 1:显示电脑以及操作系统的相关信息 qian@ubuntu:~ ...
- lintcode-【简单题】链表求和
题目: 你有两个用链表代表的整数,其中每个节点包含一个数字.数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头.写出一个函数将两个整数相加,用链表形式返回和. 样例: 给出两个链表 3- ...
- HTML4.01和XHTML1.0和XHTML1.1的一些区别
接触web前端以来,一直使用的都是html5,因此一直没搞明白HTML4.01和XHTML1.0和XHTML1.1之间的区别,今天在看<精通CSS>一书,有简单介绍这几个,在这儿记录下. ...
- Linux C学习笔记07--管道通信
管道通信属于进程间通信的一种方式,使用方便,但是局限是父进程与子进程间的通信,下面是调试好的代码. 程序父进程创建2个管道,分别用于父进程写数据--子进程读数据和子进程写数据--父进程读数据: #in ...
- nginx 命令
nginx 命令 sudo /etc/init.d/nginx configtest 测试是否配置有错 sudo /usr/local/nginx/sbin/nginx -s reload ...
- CIDR-Address介绍
CIDR是一种用二进制表示法来代替十进制表示法的新方法. IP地址有“类”的概念,/8掩码是A类,/16掩码是B类,/24掩码是C类等等.但是/12,/18,/25呢?这就是无类的概念了,CIDR的作 ...
- spi controller
http://blog.csdn.net/droidphone/article/details/24353293 http://www.china-cpu.com/supports/article/0 ...
- php protobuff 使用
http://hi.baidu.com/sing520/item/a6e98a3545fe1ef2e6bb7ad0 php 不支持uint32 不支持空结构 不支持package
- [2015hdu多校联赛补题]hdu5324 Boring Class
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5324 题意:给你一个二维的序列,让你找出最长的第一维升第二维降的子序列(如果多个答案,输出字典序最小) ...
- webView.loadUrl 错误:A WebView method was called on thread 'JavaBridge'.
String voicePath="file://"+MVOICEPATH; webView.loadUrl("javascript:voiceStopCallback( ...