Javascript 了解require.js以实现backbone.js
我正在学习require.js来组织backbone.js模板。我在网上搜索时得到了几本教程。我在那里发现了不同的实现。这就是为什么我不能理解main.js文件的那些代码Javascript 了解require.js以实现backbone.js,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,我正在学习require.js来组织backbone.js模板。我在网上搜索时得到了几本教程。我在那里发现了不同的实现。这就是为什么我不能理解main.js文件的那些代码 //file name main.js require.config({ paths: { jquery: 'libs/jquery/jquery', underscore: 'libs/underscore/underscore', backbone: 'libs/backbon
//file name main.js
require.config({
paths: {
jquery: 'libs/jquery/jquery',
underscore: 'libs/underscore/underscore',
backbone: 'libs/backbone/backbone'
}
});
require([
'app',
], function(App)
{
App.initialize();
});
特别是第二部分我不能理解。就是
需要([
“应用程序”,
],功能(应用程序)
{
App.initialize();
});强>
App.initialize()是什么意思?该结构是异步模块定义或AMD的格式。它基本上是一个API,用于以异步方式在应用程序中加载模块(基本上是Javascript文件)
require([ 'app', ], // this means you have a file called app.js,
// which is a require module
], function(App) // This means after loadind, App will be an alias
// for the module.exports object
{
App.initialize(); // This means the module exposes an initialize function
// (some will call it method), that is invoked
});
过去,这通常是使用页面底部的
标记来完成的。问题是这些文件是同步加载的(一个接一个),处理文件之间的依赖关系可能会很繁重。AMD是一个为异步加载Javascript文件而提出的标准
基本原理如下(以代码为例):
调用函数require
,该函数接受两个参数:
App
表示Javascript文件App.js
的公开API。因此,当您看到类似于App.initialize()
的内容时,这意味着文件App.js
正在公开一个名为initialize的函数,该文件正在调用该函数 加载时需要的许多应用程序在加载后都需要启动init()方法或类似的方法。如果你不需要它,那就省去吧。谢谢@MartyMcKeever的回复。App.initialize();?是什么意思??是否有名为initialize()的函数?不是主干函数,但本例假设您需要的任何函数(函数中本地命名的应用程序)都有initialize()方法,需要在启动时立即调用该方法。您所需的应用程序可能有也可能没有这样的启动方法,并且可以命名为任何名称。通常称为init();谢谢@laruiss。initialize()是一个主干函数(),对吗??
function(App) {
App.initialize();
}