2)require([name , name2],callback); 体系起首会在全文检索path中是否对应的路径,如不雅没有天然把他作为路径拼接在baseUrl上去异步加载这个js文件,加载时大年夜源代码中可以看到 ,var data = http://developer.51cto.com/art/201705/getScriptData(evt);返回的 data.id 其实就是name,然后履行contex.completeLoad(node.id),其内部就很清跋扈了,把define中注册的name和这里获得的name进行比较如不雅相等就履行,所以事理就是:require 和 define 的 name 必须包管一致!
标签加载完成之后,获取标签的独一标识name
加载非规范的模块
举例来说,underscore和backbone这两个库,都没有采取AMD规范编写。如不雅要加载它们的话,必须先定义它们的特点。
- require.config({
- shim: {
- 'underscore':{
- exports: '_'
- },
- 'backbone': {
- deps: ['underscore', 'jquery'],
- exports: 'Backbone'
- }
- }
- });
require.config()接收一个设备对象,这个对象除了有前面说过的paths属性之外,还有一个shim属性,专门用来设备不兼容的模块。具体来说,每个模块要定义(1)exports值(输出的变量名),注解这个模块外部调用时的名称;(2)deps数组,注解该模块的依附性。
比如,jQuery的插件可以如许定义:
- shim: {
- 'jquery.scroll': {
- deps: ['jquery'],
- exports: 'jQuery.fn.scroll'
- }
- }
require.js插件
domready插件,可以让回调函数在页面DOM构造加载完成后再运行。
- require(['domready!'], function (doc){
- // called once the DOM is ready
- });
text和image插件,则是许可require.js加载文本和图片文件。
- define([
- 'text!review.txt',
- 'image!cat.jpg'
- ],
- function(review,cat){
- console.log(review);
- document.body.appendChild(cat);
- }
- );
require.js还供给一系列插件,实现一些特定的功能。
类似的插件还有json和mdown,用于加载json文件和markdown文件。
第二行math.add(2, 3),在第一行require('math')之后运行,是以必须等math.js加载完成。也就是说,如不雅加载时光很长,全部应用就会停在那边等。
参考地址:
Javascript模块化编程(一):模块的写法
Javascript模块化编程(二):AMD规范
Javascript模块化编程(三):require.js的用法
RequireJS define 具体介绍
【编辑推荐】
- 基于Python和JavaScript编写物联网温度计法度榜样
- Prepack——JavaScript代码优化对象
- BOOM:一款有趣的Javascript动画效不雅
- JavaScript异步与Promise实现
- JavaScript深刻之创建对象的多种方法以及优缺点
急速履行函数写法
推荐阅读
如何安装pandom : 一个针对Linux的真随机数生成器
本教程只针对 amd64/x86_64 架构 Linux 内核版本大年夜于等于 2.6.9 的体系。本文将解释若何安装 pandom,这是一个由 ncomputers.org 保护的准时颤抖真随机数生成器。我们老是建议在应用>>>详细阅读
本文标题:RequireJS模块化编程详解
地址:http://www.17bianji.com/lsqh/35293.html
1/2 1