Requirejs是一个简单,实用,强大的前端模块化js库,它遵循AMD这一客户端模块定义规范,使用它能够使我们前端代码更加清晰高效加载,摆脱了以前前端代码杂乱无序的状态。

使用步骤如下:

1.下载require.js文件,地址为http://www.requirejs.cn/docs/download.html#requirejs,并将其加入我们的项目中;

2.使用define方法定义模块

这里主要有两种形式,第一种是定义无依赖的js模块代码,即这个js模块是单独存在的,不依赖于其他模块或者js库,这里新建一个independent.js,代码如下

define(
function()
{
return{
test1:function()
{
console.log('i am test1');
},
test2:function()
{
console.log('i am test2');
} }
}
)

  在这个js文件中定义了一个模块,返回了一个对象,其包含两个方法用以外部文件调用,这是定义一个独立的模块;

第二种方式是定义一个依赖于其他模块的模块,新建一个depend.js,代码如下:

define(['test'],function(test){
return{
showName:function(){
console.log( test.name);
},
showAge:function(){
console.log(test.age);
} } });

这里定义了一个模块,其依赖于test模块,需要注意的是,requirejs默认js文件名为模块名,test模块即对应于test.js文件,在这个模块中,第一个参数是需要依赖的外部模块名称,是一个数组,也可以依赖多个,第二个参数是一个function,其形参test对应着test模块,所以在showName,showAge方法中课直接调用test的属性或方法;

test.js

define(
function()
{
return {
name:'张三',
age:22
}
}
);

这里定义了一个test模块,返回了包含name和age的一个对象,供其他模块调用.

3.使用require调用模块

新建一个main.js,用来作为项目的主js文件,即在页面中只加载这个js文件,其他js文件都通过它以模块调用的形式存在,代码如下:

require(["depend"],function(de){
de.showAge();
de.showName(); });

表示调用depend模块,并调用其showAge和showName方法。

在html中加载requirejs,将其data-main属性指向我们的主js文件main.js

<script data-main="main.js" src="require.js"></script>

结果如下:

4.加载jQuery

平时开发中jQuery用的很多,最新版1.11以上的都遵循AMD规范,可以利用requirejs直接将其作为一个模块加载进来

在main.js中添加require.config,对jQuery进行配置,代码如下:

require.config(
{
paths:{
jquery:"http://code.jquery.com/jquery-1.11.1.min"
}
}
);

这里配置了一个jQuery模块,它的地址为一个CDN地址,也可以将其下载到本地,地址指向本地地址也可以,注意地址后面没有.js,

然后就可以使用require方法来调用了,main.js中调用代码如下:

require(["jquery","depend","independent"],function($,de,ind){
de.showAge();
de.showName();
console.log($("#span1").html());
ind.test1();
ind.test2(); });

这里调用了三个模块,我们之前自己定义的两个加上jQuery模块,并且使用了他们中的方法,其中jquery模块选择html页面上的一个span并将其内部文字输出到控制台

其余两个模块调用的都是在他们内部自定义的方法

最终结果如下:

Requirejs快速使用的更多相关文章

  1. RequireJS 快速入门

      说明:本文只提供快速入门内容,方便快速进入实战状态.更高级的配置,请参考官网文档. 当初之所以使用 RequireJS 等工具,是因为想提高js的加载速度,避免不必要的堵塞.但通过一段时间的使用, ...

  2. RequireJS - 快速指南

    原文: https://www.tutorialspoint.com/requirejs/requirejs_quick_guide.htm RequireJS - 概述 RequireJS是一个Ja ...

  3. reqiurejs学习

    RequireJS 优化 Web 应用: http://www.ibm.com/developerworks/cn/web/1209_shiwei_requirejs/ 1.模块之间的依赖关系 2.如 ...

  4. web前端知识总结

    前言: 一直想着整理一下关于前端的知识体系和资料,工作忙了些,挤挤总会有的,资料很多,就看你能不能耐下心坚持去学了,要多学多敲多想,祝你进步~ 学习之前首先要大概了解什么是HTML ,CSS , JS ...

  5. 快速理解RequireJs

    原文地址:http://www.tuicool.com/articles/jam2Anv RequireJs已经流行很久了,我们在项目中也打算使用它.它提供了以下功能: 声明不同js文件之间的依赖 可 ...

  6. requirejs的使用和快速理解

    样例来自https://www.jianshu.com/p/b8a6824c8e07 requirejs有以下功能 声明不同js文件之间的依赖 可以按需.并行.延时载入js库 可以让我们的代码以模块化 ...

  7. 快速理解RequireJs(转)

    RequireJs已经流行很久了,我们在项目中也打算使用它.它提供了以下功能: 声明不同js文件之间的依赖 可以按需.并行.延时载入js库 可以让我们的代码以模块化的方式组织 初看起来并不复杂. 在h ...

  8. RequireJs使用快速入门

    前言:Requirejs作为一个ES5环境流行的模块加载器,在很多项目中使用它.而且这个开源库任然在更新,同类产品seajs已经不更新了. ES6之后引入import 或者使用Commonjs的方式引 ...

  9. bootstrap + requireJS+ director+ knockout + web API = 一个时髦的单页程序

    也许单页程序(Single Page Application)并不是什么时髦的玩意,像Gmail在很早之前就已经在使用这种模式.通常的说法是它通过避免页面刷新大大提高了网站的响应性,像操作桌面应用程序 ...

随机推荐

  1. 适配器模式 C#

    适配器模式 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. ● Target目标角色:该角色定义把其他类转换为何种接口,也就是我们的期望接 ...

  2. 【bzoj1774-过路费】floyd+排序

    题意:n个点,m条双向边,每个点有权值c[i],每条边有权值a[i].d,一条路径的费用=每条边的权值和+各个点的权值的最大值,即sigma(a[i].d)+max(c[i]).q个询问,问x到y的最 ...

  3. .NET FrameWork 中的 CTS

    CTS:Common Type System 通用类型系统. 1.不仅可以把C#编译成.Net IL,还支持Basic.Python.Ruby等语言,甚至还支持Java.不同语言中的数据类型定义是不一 ...

  4. 【洛谷 T47488】 D:希望 (点分治)

    题目链接 看到这种找树链的题目肯定是想到点分治的. 我码了一下午,\(debug\)一晚上,终于做到只有两个点TLE了. 我的是不完美做法 加上特判\(A\)了这题qwq 记录每个字母在母串中出现的所 ...

  5. POJ 3279 Fliptile ( 开关问题)

    题目链接 Description Farmer John knows that an intellectually satisfied cow is a happy cow who will give ...

  6. python初步学习-python数据类型-列表(list)

    列表 list 在 python 中具有非常强大的功能 定义 在python中,用方括号表示一个list:[] 在方括号里面,可以是 int,也可以是 str类型的数据,甚至也可以是Flase/Tru ...

  7. [IOS]vmxsmc.exe已停止工作 VMware11 Unlocker for Mac OSX无法使用的解决办法.

    今天我帮同事安装VMware workstation12后发现之前的unlocker已经无法进行解锁了(就是VMware新建虚拟机无App Mac选项) 使用unlocker会出现vmsxmc.exe ...

  8. 【转】C++多继承的细节

    这几天写的程序应用到多继承. 以前对多继承的概念非常清晰,可是很久没用就有点模糊了.重新研究一下,“刷新”下记忆. 假设我们有下面的代码: #include <stdio.h> class ...

  9. CentOS7手动编译安装内核4.11.7

    1. 进入/usr/src/目录 cd /usr/src 2. 下载内核源码,网址:https://www.kernel.org wget https://cdn.kernel.org/pub/lin ...

  10. MediaWiki安装配置(Linux)【转】

    转自:http://blog.csdn.net/gao36951/article/details/43965527 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 1Media ...