编程语言
首页 > 编程语言> > AMD:javascript上下文的目的是什么?

AMD:javascript上下文的目的是什么?

作者:互联网

关于AMD(异步模块定义),我读到这样的阶段:

The AMD format comes from wanting a module format that was better than
today’s “write a bunch of script tags with implicit dependencies that
you have to manually order” and something that was easy to use
directly in the browser.

javascript上下文的目的是什么?你能举个例子吗?赞成和反对使用AMD?

解决方法:

JavaScript获得本机模块系统之前很久,将脚本放到页面上的唯一方法是< script>元素.它们按在HTML中出现的顺序依次执行.这意味着,如果您的脚本依赖于jQuery,则jQuery的< script>必须在脚本的< script>之前.否则,它会炸毁.

从逻辑上将一个应用拆分为多个文件并不少见,特别是随着应用的增长.但是使用这种手动订购脚本的系统很快就变成了噩梦.您的脚本具有隐式依赖关系,其管理在其他位置定义.这就是AMD来的地方.

AMD是模块规范,而RequireJS是此类系统的实现.简而言之,它是对代码的包装:1)使脚本保持惰性直到被调用; 2)允许脚本显式定义其依赖关系; 3)允许模块系统确定哪些依赖关系以什么顺序执行.

这是一个粗糙的例子:

// your-app.js
define(['jquery', 'underscore'], function($, _){
  // Your script sits in this "wrapper" function.
  // RequireJS now knows app.js needs jquery and underscore.
  // It loads and executes them first before your script.
})

// jquery.js
define('jquery', [], function(){
  // jQuery stuff
  return jQuery
})

// underscore.js
define('underscore', [], function(){
  // underscore stuff
  return underscore
})

// Then on your HTML, load up your app.
<script data-main="path/to/app.js" src="path/to/require.js"></script>

标签:javascript,javascript-framework,js-amd
来源: https://codeday.me/bug/20191011/1895763.html