Я использую requireJS 2.x. Я обнаружил, что некоторые учебники (и официальные документы) иногда используют
requirejs.config({ [...] });
requirejs(["module"]) ...
и иногда
require.config({ [...] });
require(["module"]) ...
Есть ли разница между этими двумя функциями (require и requirejs)? Я не нашел ни слова об этом в документации. :(
javascript
requirejs
require
Маттиас Байер
источник
источник
requirejs
посколькуrequire
это уже локальная переменная в этой ситуации. Я нашел это полезным в компонентах React для загрузки дополнительных скриптовcomponentDidMount
.Есть
requirejs
иrequire
том же уровне ?Начиная с RequireJS 2.1.15,
require
иrequirejs
в глобальном пространстве они действительно «точно такие же», о чем свидетельствует этот тест, который вы можете выполнить в консоли:> require === requirejs true
То, что тест возвращает,
true
говорит вам, что это один и тот же функциональный объект . Это не две функции, которые имеют похожий или идентичный код. Это один и тот же объект, точка.Обратите внимание, однако при выполнении передается функции , как правило , отличается от глобального
define(['require'], function (require) {
require
require
.Следует ли использовать
require
илиrequirejs
?Это зависит. RequireJS - это загрузчик AMD, но это не единственный загрузчик в городе. Если вы хотите написать код, который на 100% соответствует спецификации AMD , чтобы кто-то, использующий ваш код, мог использовать любой загрузчик, который им нужен, без необходимости изменять ваш код, вы должны использовать его
require
на глобальном уровне, поскольку этоrequirejs
относится к RequireJS. Другой загрузчик AMD этого не определит. Спецификация AMD определяет,require
но нетrequirejs
.Если вы загружаете что-то еще, что определяет глобальное значение,
require
вы должны использовать егоrequirejs
на глобальном уровне, чтобы избежать конфликта.Внутри модуля всегда используйте
define
для получения ссылки наrequire
. Делать это нужно совершенно независимо от того, есть ли конфликт в глобальном пространстве.источник
Хорошо, они действительно могут быть «точно такими же». Затем давайте сосредоточимся на том, почему вы должны использовать одно против другого ...
Что неясно, так это то, что следует считать «лучшей практикой»: если requirejs обеспечивает дополнительную уверенность, «если в некоторых средах уже может быть требование», то было бы лучше всегда использовать функцию requirejs для определения требуемой конфигурации. чем требуется функция?
Кроме того, что произойдет, если произойдет немыслимое, и в рассматриваемой среде не только уже определено «require», но также определено «requirejs»? Означает ли это, что у нас тоже должен быть requirejsjs? И так далее...?
источник
$
иjQuery
есть. Просто чтобы обеспечить запасной вариант и быть хорошим гражданином в случае, если среда уже используетсяrequire
. Это очень крайний случай, и его рекомендуется использоватьrequire
, но не обязательно - github.com/amdjs/amdjs-api/blob/master/AMD.md#global-variables-Это тот же открытый веб-сайт, который уже загружен.
затем откройте консоль Chrome
введите требование в консоли и нажмите ввод
введите requirejs в консоли и нажмите ввод
вы можете обнаружить, что это одна и та же функция с разными именами
источник