gpt4 book ai didi

jquery - requireJS 与 Backbone 依赖关系

转载 作者:行者123 更新时间:2023-12-01 00:24:10 27 4
gpt4 key购买 nike

我正在使用 requireJS 构建一个网站。

这是我第一次使用 requireJS。

我使用 main.js 中的路径配置了 requireJS:

require.config({
paths: {
'jquery': 'libs/jquery/1.7.2/jquery',
'underscore': 'libs/underscore/1.3.3-amdjs/underscore', // AMD support
'backbone': 'libs/backbone/0.9.2-amdjs/backbone', // AMD support
'marionette': 'libs/marionette/0.9.3-amd/backbone.marionette', // AMD support
'templates': '../templates'
}
});

在我正在使用的模型、 View 、集合中;

define([    
'jquery',
'backbone'
], function ($) {
var Geo = Backbone.Model.extend({});

return Geo;
});

我不清楚的是:为什么我必须继续将 jquery 和backbone定义为依赖项。我的意思是,如果没有 jquery/backbone,这个项目和模型将永远无法运行。

那么为什么不将 jquery 和backbone 添加到index.html 作为脚本标记,并在每个可能的对象中保存对它们的引用。我知道它会污染全局命名空间,但这不是合理的吗?

任何建议均适用。

干杯,

最佳答案

@Guy,定义它们是可选的,但如果你想保持一致,那就比你这样做更好。这是 Require.JS 建议的架构。这并不意味着每次您将 jQuery 或 Backbone 定义为 deps 时它都会尝试加载它们。

此外,在您的示例中,您不需要在回调 function() 参数中使用 $ 。 jQuery 和 $ 已经在窗口中了。

define([    
'jquery',
'backbone'
], function ($) {
var Geo = Backbone.Model.extend({});

return Geo;
});

另外,在生产中,因为我们有时会使用很多依赖项,所以我们这样做:每次在依赖项中列出require,然后显式分配变量,因为有些依赖项没有AMD支持并且不返回您所期望的:

define([    
'require'
'moduleA',
'moduleB'
], function (require) {
var moduleA = require('moduleA'),
moduleB = require('moduleB');

/* code */
return;
});

关于jquery - requireJS 与 Backbone 依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11488698/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com