标签:javascript javascript-framework js-amd
关于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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。