JS模块化工具requirejs教程(一):初识requirejs

http://www.runoob.com/w3cnote/requirejs-tutorial-1.html

JS模块化工具requirejs教程(二):基本知识

http://www.runoob.com/w3cnote/requirejs-tutorial-2.html

Javascript模块化编程(三):require.js的用法

http://www.ruanyifeng.com/blog/2012/11/require_js.html

require js define 函数

http://blog.csdn.net/u010130282/article/details/52329953

5. 完整定义

define('sample3' ,['sample','sample1'],function (sample,sample1) {
var sample4 = require('sample4');
return function(){
alert(sample.name+':'+sample.sayhell());
}
});

这就是完整定义,有名称,有依赖,有回调,内部还有common的形式引入依赖对象!

关于define函数的name和require函数的依赖名称之间的关系

  • define(name,[] , callback); 这个name可以省掉,默认是文件名称;当然也可以自定义,一旦我们定义了name,根据源代码我们可以发现define函数内部其实就是把这个name以及依赖模块、回调函数作为一个对象存储在全局的数组当中,也就是 defQueue.push([name,deps,callback]);那么这个name就是这个组件注册的的ID!

  • require([name , name2],callback); 系统首先会在全文检索path中是否对应的路径,如果没有自然把他作为路径拼接在baseUrl上去异步加载这个js文件,加载时从源代码中可以看到 ,var data = getScriptData(evt);返回的 data.id 其实就是name,然后执行contex.completeLoad(node.id),其内部就很清楚了,把define中注册的name和这里得到的name进行比较如果相等就执行。所以道理就是:require 和 define 的 name 必须保证一致!

Javascript模块化编程require.js的用法的更多相关文章

  1. 坑人的 Javascript 模块化编程 require.js

    坑人的 Javascript 模块化编程 require.js

  2. Javascript模块化编程 require.js使用详解

    一.为什么用require.js,产生的背景 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载. & ...

  3. Javascript模块化编程-require.js[3]

    很多情况下,JS都是放到一个或者多个文件里,只要加载这些文件就可以了. 但是对于一些小型项目而言,这种写法是没有任何问题的. 但是对于某些大型网站,JS的量是很大的,如果还采用这种方式,网站时常在加载 ...

  4. 坑人的 Javascript 模块化编程 sea.js

    坑人的 Javascript 模块化编程 sea.js 忧伤 加 蛋疼的 开始了 看文档 Sea.js 进行配置 seajs.config({ // 设置路径,方便跨目录调用 paths: { 'ar ...

  5. JavaScript模块化-require.js,r.js和打包发布

    在JavaScript模块化和闭包和JavaScript-Module-Pattern-In-Depth这两篇文章中,提到了模块化的基本思想,但是在实际项目中模块化和项目人员的分工,组建化开发,打包发 ...

  6. js模块化开发——require.js的用法详细介绍(含jsonp)

    RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签脚本加载步骤.可以用它回事.优化代码,但其主要的目的还是为了代码的模块化.它鼓励在使用脚本以moudle ...

  7. Javascript模块化工具require.js教程

    转自:http://www.w3cschool.cc/w3cnote/requirejs-tutorial-1.html, http://www.w3cschool.cc/w3cnote/requir ...

  8. js模块化开发——require.js的用法

    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的 ...

  9. Javascript模块化编程(三):require.js的用法

    Javascript模块化编程(三):require.js的用法 原文地址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 作者: 阮一峰 ...

随机推荐

  1. spring AOP的两种代理

    本篇记录下spring AOP的两种代理,为下一篇AOP实现做下铺垫. 1.JDK动态代理  2.cglib代理 1.如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP2.如果目标对象 ...

  2. 上传jar包至nexus

    上传命令: mvn deploy:deploy-file -DgroupId=com.xxx -DartifactId=xxx-pdf -Dversion=16.10.0 -Dpackaging=ja ...

  3. [3140] Sublime Text 2.x, 3.x 通用注册码、密钥集合

    [3140] Sublime Text 2.x, 3.x Universal License Keys collection for Win, Mac & Lin 所有这些许可证密钥都被测试( ...

  4. SPOJ BALNUM Balanced Numbers(数位DP+状态压缩)题解

    思路: 把0~9的状态用3进制表示,数据量3^10 代码: #include<cstdio> #include<map> #include<set> #includ ...

  5. QtTcp_资料

    1.百度搜索关键字“Qt TCP” 2. 2.1.Qt学习之路_5(Qt TCP的初步使用) http://www.cnblogs.com/tornadomeet/archive/2012/06/30 ...

  6. eclipse下maven springMVC 整合 mybatis

    参考文档:http://blog.csdn.net/zhshulin/article/details/37956105   1.搭建maven工程,具体参见我另一篇博客:http://www.cnbl ...

  7. spring Security简介

    它是spring的权限管理框架

  8. Rails-treasure chest4: 使用图表对资料进行分析chart.js(及其他);管理用户权限的gem 'Pumdit'(6000🌟)

    * 多档案上传* 图表资料分析  Chartkick gem或者 chart.js* 用户权限控管  gem Pundit (6000✨) *HTML E-mail 寄送 : gem premaile ...

  9. Python的第一次作业

    题目1 : 描述:通过趣味的打怪来学习random随机函数. 代码: from random import * import types choc=0 hs=[100] numer=[randint( ...

  10. appium+pytest+allure+jenkins 如何实现多台手机连接

    使用appium可以实现app自动化测试,我们之前是连接一台手机去运行,如何同时连接多台手机呢?很多人可能想到的是多线程(threading).今天分享一种比多线程更简单的方法,虽然不是多台手机同时运 ...