CMD模块规范的一些问题

发布于 2022-09-07 21:33:36 字数 1153 浏览 21 评论 0

问题:

  • CMD模块依赖写在define函数中的第二个参数deps,和写在第三个参数factory函数中的require中有啥区别?例如:
define('hi', ['jquery'], function (require, exports, module) {});

define('hi', function (require, exports, module) {
    let jquery = require('jquery');
});

同样都是本模块的依赖,这两种方式写有什么不同?据说CMD是延迟执行的,意思是factory函数中所有require的东西,会先加载好(但没执行),然后先执行factory函数,遇到require的地方再执行require中的东西。但对于上面的第一种,['jquery']这种又是怎样理解“延迟执行”的?

  • seajs.config中的alias和paths有啥区别?我感觉它们可以互相替代使用,以下放一个例子:

clipboard.png

对于图片中的alias,我完全可以写成这样:

seajs.config({
    paths: {
        'jquery': 'jquery/jquery/1.10.1/jquery'
    }
});

define('hi', function (require, exports, module) {
    let jquery = require('jquery');
});

对于图片中的paths,我完全可以写成这样:

seajs.config({
    alias: {
        'gallery': 'xxxxxxxxxx/gallery'
    }
});

define('hi', function (require, exports, module) {
    let gallery= require('gallery');
});

所以我觉得很混淆,感觉它们的作用其实可以说是一样的,可以举一个它们不能互相替代使用的例子吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文