RequireJS: Unterschied zwischen "requirejs" und "require" Funktionen
Ich bin mit requireJS 2.x. Ich fand heraus, dass einige tutorials (und die offiziellen docs) verwenden manchmal
requirejs.config({ [...] });
requirejs(["module"]) ...
und manchmal
require.config({ [...] });
require(["module"]) ...
Ist, gibt es einen Unterschied zwischen diesen beiden Funktionen (benötigen und requirejs)? Ich konnte keine Wort darüber in den docs. 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie genau das gleiche.
Der Grund ist, dass einige Umgebungen kann bereits eine
require
, in dem Fall RequireJS nicht überschrieben werden und erlaubt die Nutzung der Bibliothek durchrequirejs
Sehen, diese commit - https://github.com/jrburke/requirejs/commit/be45948433b053921dc6a6a57bf06d04e13b3b39
requirejs
alsrequire
ist bereits eine lokale variable in tht situation. Ich habe festgestellt, dass dies nützlich, Reagieren die Komponenten laden zusätzliche Skripte incomponentDidMount
.Sind
requirejs
Undrequire
Gleich?Als von RequireJS 2.1.15 herunter,
require
undrequirejs
im globalen Raum sind in der Tat "genau das gleiche", wie kann belegt werden durch diesen test können Sie durch ausführen in der Konsole:Dass der test gibt
true
sagt Ihnen, Sie sind die genau die gleiche Funktion Objekt. Sie sind nicht zwei Funktionen, die zufällig ähnliche oder identische code. Sie sind das gleiche Objekt, Zeit.Beachten, jedoch, wenn Sie Sie ausführen
define(['require'], function (require) {
Dierequire
an die Funktion übergeben wird normalerweise verschiedenen aus der globalenrequire
.Sollten Sie
require
oderrequirejs
?Kommt es an. RequireJS ist ein AMD-loader, aber es ist nicht der einzige loader in der Stadt. Wenn Sie wollen, um code zu schreiben, der entspricht 100% der AMD spec, so dass jemand mit Ihrem code verwenden können, loader, was Sie wollen, ohne den code so ändern, dann sollten Sie
require
auf der globalen Ebene, darequirejs
spezifisch ist RequireJS. Ein weiteres AMD-loader nicht definieren. Die AMD-Spezifikation definiertrequire
aber nichtrequirejs
.Wenn Sie be etwas anderes, das definiert ein globales
require
dann müssen Sierequirejs
auf globaler Ebene, um Konflikte zu vermeiden.Innerhalb eines Moduls verwenden Sie immer
define
um einen Verweis aufrequire
. Sie sollten dies tun, ganz unabhängig davon, ob es ein Konflikt in den globalen Raum.OK, Sie kann ja auch sein "genau das gleiche". Lasst uns darauf konzentrieren, warum Sie verwenden würden, eine im Vergleich zu den anderen...
Was ist unklar ist, was sollte als "best practice": Wenn requirejs gibt zusätzliche Sicherheit ", wenn einige Umgebungen kann bereits ein verlangen", dann wäre es nicht eine gute Idee, verwenden Sie immer die requirejs-Funktion zu definieren, die eine Konfiguration erfordern, anstatt der benötigen Funktion?
Auch, was passiert, wenn das Undenkbare geschieht und die Umgebung, in Frage, die nicht nur bereits einen "require" definiert, sondern hat auch eine "requirejs" definiert? Heißt das, wir sollten einen requirejsjs auch? Und so weiter...?
$
undjQuery
sind. Es geht nur um eine fallback und sein ein guter Bürger im Fall einer Umgebung, die bereits verwendetrequire
. Es ist sehr viel ein Grenzfall und es wird empfohlen, Verwendungrequire
, aber nicht notwendig - github.com/amdjs/amdjs-api/blob/master/AMD.md#global-variables-Sie sind die Gleichen
Öffnen Sie die Webseite, die geladen erfordern bereits
dann öffnen Sie Chrome Konsole
Art erfordern in der Konsole und drücken Sie die EINGABETASTE
Typ requirejs in der Konsole und drücken Sie die EINGABETASTE
können Sie feststellen, dass Sie dieselbe Funktion mit unterschiedlichen Namen