RequireJS入门(一)

RequireJS由James Burke创建,他也是AMD规范的创始人。

RequireJS会让你以不同于往常的方式去写JavaScript。你将不再使用script标签在HTML中引入JS文件,以及不用通过script标签顺序去管理依赖关系。

当然也不会有阻塞(blocking)的情况发生。好,以一个简单示例开始。

新建一个目录,结构如下

目录r1下有index.html、jquery-1.7.2.js、main.js、require.js。require.js和jquery-1.7.2.js去各自官网下载即可。

index.html如下


1

2

3

4

5

6

7

8

9

10

11

<!doctype html>

<html>

    <head>

        <title>requirejs入门(一)</title>

        <meta charset="utf-8">

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

    </head>

    <body>

    

    </body>

</html>

  

使用requirejs很简单,只需要在head中通过script标签引入它(实际上除了require.js,其它文件模块都不再使用script标签引入)。

细心的同学会发现script标签上了多了一个自定义属性:data-main="main",等号右边的main指的main.js。当然可以使用任意的名称。这个main指主模块或入口模块,好比c或java的主函数main。

main.js如下


1

2

3

4

5

6

7

8

9

require.config({

    paths: {

        jquery: ‘jquery-1.7.2‘

    }

});

require([‘jquery‘], function($) {

    alert($().jquery);

});

main.js中就两个函数调用require.config和require。

require.config用来配置一些参数,它将影响到requirejs库的一些行为。

require.config的参数是一个JS对象,常用的配置有baseUrl,paths等。

这里配置了paths参数,使用模块名“jquery”,其实际文件路径jquery-1.7.2.js(后缀.js可以省略)。

我们知道jQuery从1.7后开始支持AMD规范,即如果jQuery作为一个AMD模块运行时,它的模块名是“jquery”。注意“jquery”是固定的,不能写“jQuery”或其它。

注:如果文件名“jquery-1.7.2.js”改为“jquery.js”就不必配置paths参数了。

jQuery中的支持AMD代码如下


1

2

3

if ( typeof define === "function" && define.amd && define.amd.jQuery ) {

    define( "jquery", [], function () { return jQuery; } );

}

我们知道jQuery最终向外暴露的是全局的jQuery和 $。如下


1

2

// Expose jQuery to the global object

window.jQuery = window.$ = jQuery;

如果将jQuery应用在模块化开发时,其实可以不使用全局的,即可以不暴露出来。需要用到jQuery时使用require函数即可,

这里require函数的第一个参数是数组,数组中存放的是模块名(字符串类型),数组中的模块与回调函数的参数一一对应。这里的例子则只有一个模块“jquery”。

把目录r1放到apache或其它web服务器上,访问index.html。

网络请求如下

我们看到除了require.js外main.js和jquery-1.7.2.js也请求下来了。而它们正是通过requirejs请求的。

页面上会弹出jQuery的版本

这是一个很简单的示例,使用requirejs动态加载jquery。使用到了以下知识点

1、data-main属性

2、require.config方法

3、require函数

时间: 2024-10-26 14:31:40

RequireJS入门(一)的相关文章

requirejs入门知识整理

使用模块化开发处理的三大问题: 1.命名冲突:2.繁琐的文件依赖 3.实现异步非阻塞的文件加载,避免网页失去响应 模块化的设计使得JavaScript代码在需要访问“全局变量”的时候,都可以通过依赖关系,把这些“全局变量”作为参数传递到模块的实现体里,在实现中就避免了访问或者声明全局的变量或者函数,有效的避免大量而且复杂的命名空间管理. requirejs以一个相对于baseUrl的地址来加载所有的代码.如果用了data-main属性,则该路径就是baseUrl,baseUrl亦可通过requi

RequireJS入门

RequireJS由James Burke创建,他也是AMD规范的创始人. RequireJS会让你以不同于往常的方式去写JavaScript.你将不再使用script标签在HTML中引入JS文件,以及不用通过script标签顺序去管理依赖关系. 当然也不会有阻塞(blocking)的情况发生.好,以一个简单示例开始. 新建一个目录,结构如下 目录r1下有index.html.jquery-1.7.2.js.main.js.require.js.require.js和jquery-1.7.2.j

RequireJS入门(三)

这篇来写一个具有依赖的事件模块event.event提供三个方法bind.unbind.trigger来管理DOM元素事件. event依赖于cache模块,cache模块类似于jQuery的$.data方法.提供了set.get.remove等方法用来管理存放在DOM元素上的数据. 示例实现功能:为页面上所有的段落P元素添加一个点击事件,响应函数会弹出P元素的innerHTML. 创建的目录如下 为了获取元素,用到了上一篇写的selector.js.不在贴其代码. index.html 如下

RequireJs入门1

RequireJs入门 随着Javascript在开发中占得比重越来越大,就需要一个团队来分工.协作,为了大家的代码可以更好的相互使用,这个时候模块化编程 就成为一个迫切的需求了.但是Javascript本身不是模块化的语言.它不支持类,更别说模块了. 既然模块如此重要,那团队开发中就应该去制定一种规范,来约束大家,这样就便于大家相互使用.如果每个人都按自己的写法,那肯定是乱了套的, 目前Javascript官方没有规范,通行的Javascript模块规范只有两种:CommonJs和AMD Co

RequireJS入门与进阶

RequireJS由James Burke创建,他也是AMD规范的创始人. RequireJS会让你以不同于往常的方式去写JavaScript.你将不再使用script标签在HTML中引入JS文件,以及不用通过script标签顺序去管理依赖关系. 当然也不会有阻塞(blocking)的情况发生.好,以一个简单示例开始. 新建一个目录,结构如下 目录r1下有index.html.jquery-1.7.2.js.main.js.require.js.require.js和jquery-1.7.2.j

RequireJS 入门指南

简介 如今最常用的JavaScript库之一是RequireJS.最近我参与的每个项目,都用到了RequireJS,或者是我向它们推荐了增加RequireJS.在这篇文章中,我将描述RequireJS是什么,以及它的一些基础场景. 异步模块定义(AMD) 谈起RequireJS,你无法绕过提及JavaScript模块是什么,以及AMD是什么. JavaScript模块只是遵循SRP(Single Responsibility Principle单一职责原则)的代码段,它暴露了一个公开的API.在

RequireJS入门之二——第二例(调用自己的JS代码)

第一节遗留的问题: 中文乱码:  修改require.js文件,搜索charset 关键字,修改为GBK: 路      径:  仅介绍main.js中的路径设置:1. 可以设置baseUrl根路径:如,把jquery放在根目录下js文件夹,可以这样     若放在js/lib中,这样: ./ 可以省略:页面引入方式类似:引入时   data-main="./js/main"  属性是由RequireJS定义的,默认省略写.js 本节需求:编写一个选择器通过根据id.class.Tag

RequireJS入门之一——实现第一个例子

为什么学习RequireJS? 像我这种菜鸟,会提到海量文章里提到的AMD.JS模块化编程.异步... ... 等等 RequireJS是一个Javascript 文件和模块框架,它可以帮我们去管理js代码(我的理解). 深入学习,我们便会被迫接受一系列的名词:data-main.require.define.baseUrl.paths.shims.deps...等等: 总之,很多文章都在向我们推销一些自己都说不明白的名词和概念. 简单点,现在我们要做一个简单的需求,用RequireJS管理我们

RequireJS入门指导 (转)

最近在百度实习做的一个项目用到了 Require JS 这个库,之前从来没有了解过,经过一番大概的搜索后找到一篇非常不错的文章,看完后能够让你对 Require JS 的运行机制.使用方法以及为什么使用 Require JS 有一个基础的认识.下面我就对这篇文章进行一个简单的翻译,如果有错漏的地方希望指正. 原文链接:http://undefinedblog.com/primer-for-require-js/ 谁适合读这篇文章 对 JavaScript 有一定的了解,写过一定规模的 JavaS