为啥有人使用 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 在这里工作?