10分钟精通require.js
require.js的诞生,就是为了解决这两个问题:
(1)实现js文件的异步加载,避免网页失去响应;
(2)管理模块之间的依赖性,便于代码的编写和维护。
一、require.js的加载文件
<script src="js/require.js" data-main="src/main.js"></script>
由于require.js默认的文件后缀名是js,所以可以把main.js简写成main。
二、主模块的写法
main.js,我把它称为"主模块",所有代码都从这儿开始运行。
require(['模块依赖'],, function (回调函数){});
实例:
require(['jquery'], function ($){ })
三、config配置
require.config({
baseUrl: '路径',
paths: {
'标识':'路径'
}
});
四、AMD模块的写法
define(function (){ });
如果模块存在依赖,那么define()函数的第一个参数,必须是一个数组,指明该模块的依赖性。
define(['lib'], function(myLib){ });
当require()函数加载上面这个模块的时候,就会先加载依赖文件lib.js。
五、require.js插件
require.js还提供一系列插件,实现一些特定的功能。 插件下载地址:
https://github.com/jrburke/requirejs/wiki/Plugins
实际开发应用
文件:
require.js
jquery.js
main.html
main.js
one.js
three.js
two.js
文件代码:
init.html
<script src="js/require.js" data-main="src/main" type="text/javascript"></script>
main.js
require.config({
//baseUrl: ".",
paths: {
"jquery": "/script/jquery"
}
});
//main.js 调用依赖模板,次处为入口程序main()
require(['one', 'two', 'three'], function (one, two, three) {
document.write(one.add(1, 2));
document.write('</br>');
document.write(two.add(3, 4));
document.write('</br>');
document.write(three);
});
one.js
//定义非依赖模板
define(function () {
var add = function (x, y) {
return "one.js模板,实现x+y=" + x + y;
};
return {
add: add
};
});
two.js
//定义依赖模板
define(['one'], function (one) {
var add = function (x, y) {
return "two.js模板,依赖one.js模板,x+y=" + one.add(x, y);
};
return {
add: add
};
});
three.js
define(['jquery'], function ($) {
return "three.js模板,实现调用jquery.js类库:" + $.trim('jquery trim');
});
10分钟精通require.js的更多相关文章
- 10分钟精通SharePoint-搜索
大势所趋随着企业内容和文档数量的骤增,快速定位到所需材料和内容已经迫不及待,这也是所有企业所面临的共同的挑战,应这个大的趋势,"搜索"闪亮登上了企业协作(SharePoint)舞台 ...
- 10分钟精通SharePoint - SharePoint升级
类型: b2b(安装更新)和v2v(跨版本升级) 内容:二进制文件和数据库 过程: 升级前检查 - 检查场内数据,配置和自定义等等 升级准备和计划 - 根据需要和升级检查制定相应计划和准备工作 ...
- 10分钟精通SharePoint - SharePoint安装
简介 接触SharePoint就避免不了要接触SharePoint安装,无论你是对SharePoint进行开发还是管理(终端用户除外).SharePoint的安装涉及到两部分:预装.安装和配置,这主要 ...
- 10分钟精通SharePoint - SharePoint拓扑结构
SharePoint服务器角色:前端,应用程序和数据库服务器 应用程序服务:搜索.Office文档.User Profile和App等应用服务器 数据库类型:内容数据库.应用程序数据库和配置数据库 规 ...
- Node.js躬行记(21)——花10分钟入门Node.js
Node.js 不是一门语言,而是一个基于 V8 引擎的运行时环境,下图是一张架构图. 由图可知,Node.js 底层除了 JavaScript 代码之外,还有大量的 C/C++ 代码. 常说 Nod ...
- 10分钟精通SharePoint - SharePoint发展历程
SharePoint 2001: SharePoint Team Service(STS) SharePoint Portal Server(SPS) SharePoint 2003: Windows ...
- 10分钟精通SharePoint - SharePoint定位
平台 – "一栋楼房的框架结构" 扩展 – "用户可以根据自己需要随意装修房间"集成 – "插拔式的系统集成能力"业务– "既是全 ...
- ASP.NET MVC应用require.js实践
这里有更好的阅读体验和及时的更新:http://pchou.info/javascript/asp.net/2013/11/10/527f6ec41d6ad.html Require.js是一个支持j ...
- require.js实践
ASP.NET MVC应用require.js实践 这里有更好的阅读体验和及时的更新:http://pchou.info/javascript/asp.net/2013/11/10/527f6ec41 ...
随机推荐
- 清除数据库表、外键、存储过程SQL
1.删除所有外键 ) begin exec(@c1) fetchnextfrom c1 into@c1 endclose c1deallocate c1 2. ...
- UICollectionView 相关
当数据不多,collectionView.contentSize小于collectionView.frame.size的时候,UICollectionView是不会滚动的 self.Cov.alway ...
- UIWindow 介绍:概述、作用、主要属性及方法
概述: UIWindow 类是 UIView 的子类,用于管理.协调应用中显示的窗口,其两个最重要的职能就是 容器,给 view 提供展示的区域: 将事件(例如:点击事件.拖拉事件等)分发给 view ...
- mount.nfs: access denied by server while mounting <SERVER IP>:<SERVER PATH>
root@hipchat:~# mount -t nfs 192.168.10.220:/hipchat/share /home/share/nfs mount.nfs: access denied ...
- Linux tar包相关命令
tar [-j|-z][cv][-f 新建的文件名] filename... <==打包与压缩 tar [-j|-z][tv][-f 新建的文件名] <==查看文件名 tar [-j| ...
- git push.default设置
转自:http://blog.csdn.net/daijingxin/article/details/51326715 在进行一次空仓库的提交时,我遇到了这个警告 警告如下: warning: pus ...
- 黑马day17 ajax&实现username自己主动刷新
1. regist.jsp文件 <%@ page language="java" pageEncoding="utf-8"%> <!DOCTY ...
- 实用ExtJS教程100例-001:开天辟地的Hello World
ExtJS功能繁多,要想彻底的了解确实很困难.作为初学者,如何能找到一条快速的通道呢?我觉得,如果你有Javascript的基础,那就不要惧怕ExtJS的复杂,从动手开始,遇到问题,解决问题,积累经验 ...
- npm速度过慢的解决方案
因为npm连接的数据源网站太慢,可以使用淘宝提供的npm数据源, npm config set registry https://registry.npm.taobao.org 使用NPM(Node. ...
- [转]在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境
FROM : http://www.cnblogs.com/eleganthqy/archive/2010/02/28/1675217.html 最近转向到了使用ubuntu做桌面,安装好系统以来一直 ...