Require.JS 是适合这项工作的工具吗?
Is Require.JS the right tool for the job?
好吧,我对 JavaScript 比较陌生,可能真的需要 4-5 个月左右的涉猎时间。但是我想改进我的 JavaScript 以匹配我的一般编码方式。
我通常是一名 PHP 开发人员,并使用 Composer 加载我的 类 以供使用。 Require.JS 允许我这样做吗?例如,我称之为 module 的一个简短片段是:
var tabs = function(paramOps) {
var _this = this;
_this.opts = {
header: {
target: 'tabbedHeader'
},
content: [{
id: '',
title: 'Default Title',
descr: 'Data is yummy'
}]
}
$.extend(true, _this.opts, paramOpts);
_this.render = function() {
// YOU GET THE IDEA
}
return _this;
}
然后我会使用 :
加载我的模块
var tabs = new tabs();
tabs.render(paramOpts); // paramOpts is defined elsewhere
好吧,在没有应用程序 JS 文件的野兽的情况下,我可以使用 Require.JS 将它们作为模块加载吗?
Ok so without having a beast of an application JS file, am I able to load these in as Modules using Require.JS?
是的。假设您在 tabs.js
中定义了它。然后你会做:
var Tabs = require("./tabs.js");
(我不是需求专家,所以我不知道为什么需要前导 ./
,但是 it's shown in this example linked from the Require website,所以...)
但它还可以 很多。例如,您可以在 tabs.js
中使用 define
为其指定一个可解析的名称,而不是文件名,例如:
tabs.js
:
define("tabs", function() {
// ...create your Tabs function
return Tabs;
});
然后使用它:
var Tabs = require("tabs");
或者,如果您在应用其他地方的另一个组件中使用它,也许 ui.js
,并且您想在 ui.js
中使用 define
,那么:
ui.js
:
define("ui", ["tabs"], function(Tabs) {
// Use Tabs here
// Return whatever it is the 'ui' module defines
});
这建立了一个依赖关系:RequireJS 知道加载 ui
必须涉及加载 tabs
,它也是如此,然后提供 ui
及其依赖关系作为 define
回调。
旁注:最好遵守约定,如果您要将函数作为构造函数调用(例如,通过 new
),它应该是初始上限:Tabs
,不是 tabs
.
好吧,我对 JavaScript 比较陌生,可能真的需要 4-5 个月左右的涉猎时间。但是我想改进我的 JavaScript 以匹配我的一般编码方式。
我通常是一名 PHP 开发人员,并使用 Composer 加载我的 类 以供使用。 Require.JS 允许我这样做吗?例如,我称之为 module 的一个简短片段是:
var tabs = function(paramOps) {
var _this = this;
_this.opts = {
header: {
target: 'tabbedHeader'
},
content: [{
id: '',
title: 'Default Title',
descr: 'Data is yummy'
}]
}
$.extend(true, _this.opts, paramOpts);
_this.render = function() {
// YOU GET THE IDEA
}
return _this;
}
然后我会使用 :
加载我的模块var tabs = new tabs();
tabs.render(paramOpts); // paramOpts is defined elsewhere
好吧,在没有应用程序 JS 文件的野兽的情况下,我可以使用 Require.JS 将它们作为模块加载吗?
Ok so without having a beast of an application JS file, am I able to load these in as Modules using Require.JS?
是的。假设您在 tabs.js
中定义了它。然后你会做:
var Tabs = require("./tabs.js");
(我不是需求专家,所以我不知道为什么需要前导 ./
,但是 it's shown in this example linked from the Require website,所以...)
但它还可以 很多。例如,您可以在 tabs.js
中使用 define
为其指定一个可解析的名称,而不是文件名,例如:
tabs.js
:
define("tabs", function() {
// ...create your Tabs function
return Tabs;
});
然后使用它:
var Tabs = require("tabs");
或者,如果您在应用其他地方的另一个组件中使用它,也许 ui.js
,并且您想在 ui.js
中使用 define
,那么:
ui.js
:
define("ui", ["tabs"], function(Tabs) {
// Use Tabs here
// Return whatever it is the 'ui' module defines
});
这建立了一个依赖关系:RequireJS 知道加载 ui
必须涉及加载 tabs
,它也是如此,然后提供 ui
及其依赖关系作为 define
回调。
旁注:最好遵守约定,如果您要将函数作为构造函数调用(例如,通过 new
),它应该是初始上限:Tabs
,不是 tabs
.