为啥有人使用 define(['jquery'...], function($...)... [重复]

Posted

技术标签:

【中文标题】为啥有人使用 define([\'jquery\'...], function($...)... [重复]【英文标题】:Why does anyone use define(['jquery'...], function($...)... [duplicate]为什么有人使用 define(['jquery'...], function($...)... [重复] 【发布时间】:2017-08-03 10:20:31 【问题描述】:

我正在一个使用聊天 SDK 的项目中工作。他们确实喜欢在标题中声明很多东西......例如jquery......我以前从未见过jquery被这样对待吗?他们为什么这样做?

【问题讨论】:

require.js 这可能是require.js中的define函数,见docs 【参考方案1】:

define 方法可能取自 RequireJS 或类似框架,此类文件构成异步模块定义(请参阅http://requirejs.org/docs/whyamd.html)。

模块背后的简单想法是,您只需添加 requirejs 库和小配置(模块名称到 URL 的映射),而不是将所有需要的 JS 文件添加到页面标题。创建自己的模块时,您将使用以下模板:

  define([required module list], function(resolved module list)
       /* module initialization code */
       return /*value used as parameter to function 
                when this module is required by other module */;
    );

它为您解决了多个问题:

不需要全局变量 模块是按需加载的,如果您正在编写大型应用程序,模块会在需要时加载,而不是在文档开始时加载 - 这可以减少 Web 应用程序的启动时间 js 文件下载和初始化由 requirejs lib 按照正确的依赖顺序为您完成

【讨论】:

以上是关于为啥有人使用 define(['jquery'...], function($...)... [重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥大多数 C 开发人员使用 define 而不是 const? [复制]

为啥在 C++ 头文件中使用 #ifndef 和 #define?

为啥不使用#define 来隐藏unique_ptr ugliness 在这里工作?

为啥#define _LARGEFILE_SOURCE 会破坏这些函数指针?

RequireJS库的定义说明

FF4 需要点击 jquery 为啥?