温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用javascript AMD

发布时间:2021-11-18 13:41:15 来源:亿速云 阅读:130 作者:iii 栏目:web开发

这篇文章主要介绍“怎么使用javascript AMD”,在日常操作中,相信很多人在怎么使用javascript AMD问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用javascript AMD”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Modules/Wrappings  使得实现变为现实。虽然和NodeJS的模块写法不完全一致,但也有很多相似之处,使得熟悉NodeJS的程序员有一些亲切感。

但NodeJS终究是服务器端的JavaScript,没有必要把这些条条框框放到浏览器JavaScript环境中。这时AMD  诞生了,它的全称为异步模块定义。从名称上看便知它是适合script  tag的。也可以说AMD是专门为浏览器中JavaScript环境设计的规范。它吸取了CommonJS的一些优点,但又不照搬它的格式。开始AMD作为CommonJS的transport  format 存在,因无法与CommonJS开发者达成一致而独立存在。它有独立的wiki 和讨论组 。

AMD设计出一个简洁的写模块API:define 。

define(id?, dependencies?, factory);

其中:

◆ id: 模块标识,可以省略。

◆ dependencies: 所依赖的模块,可以省略。

◆ factory: 模块的实现,或者一个JavaScript对象。

id遵循CommonJS Module Identifiers 。dependencies元素的顺序和factory参数一一对应。

以下是使用AMD模式开发的简单三层结构(基础库/UI层/应用层):

base.js

define(function() {     return {         mix: function(source, target) {         }     }; });

ui.js

define(['base'], function(base) {     return {         show: function() {             // todo with module base         }     } });

page.js

define(['data', 'ui'], function(data, ui) {     // init here });

data.js

define({     users: [],     members: [] });

以上同时演示了define的三种用法,

1,定义无依赖的模块(base.js)

2,定义有依赖的模块(ui.js,page.js)

3,定义数据对象模块(data.js)

细心的会发现,还有一种没有出现,即具名模块

define('index', ['data','base'], function(data, base) {     // todo });

具名模块多数时候是不推荐的,一般由打包工具合并多个模块到一个js文件中时使用。

前面提到dependencies元素的顺序和factory一一对应,其实不太严谨。AMD开始为摆脱CommonJS的束缚,开创性的提出了自己的模块风格。但后来又做了妥协,兼容了  CommonJS Modules/Wrappings 。即又可以这样写

define(function(require, exports, module) {     var base = require('base');     exports.show = function() {         // todo with module base     }  });

不考虑多了一层函数外,格式和NodeJS还比较象的。使用require获取依赖模块,使用exports导出API。

除了define外,AMD还保留一个关键字require。require 作为规范保留的全局标识符,可以实现为 module  loader。也可以不实现。

目前,实现AMD的库有RequireJS 、curl 、Dojo 、bdLoad、JSLocalnet 、Nodules 等。

也有很多库支持AMD规范,即将自己作为一个模块存在,如MooTools 、jQuery 、qwery 、bonzo 甚至还有 firebug 。

到此,关于“怎么使用javascript AMD”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI