Из исходного кода require.js (строка 1902):
/**
* The function that handles definitions of modules. Differs from
* require() in that a string for the module should be the first argument,
* and the function to execute after dependencies are loaded should
* return a value to define the module corresponding to the first argument's
* name.
*/
define()
Функция принимает два дополнительных параметра (строки , которые представляют собой идентификатор модуля и массив необходимых модулей) и один необходимый параметр (метод фабрики).
Возвращение фабричного метода ДОЛЖНО возвращать реализацию для вашего модуля (так же, как это делает Шаблон модуля ).
require()
Функция не должна возвращать реализацию нового модуля.
Используя, define()
вы спрашиваете что-то вроде: «запустите функцию, которую я передаю в качестве параметра, и присвойте все, что возвращает идентификатору, который я передаю, но перед этим проверьте, загружены ли эти зависимости» .
Если require()
вы говорите что-то вроде «функция, которую я передаю, имеет следующие зависимости, проверьте, загружены ли эти зависимости перед ее запуском» .
В этой require()
функции вы используете определенные вами модули, чтобы быть уверенными, что модули определены, но вы не определяете новые модули там.
define()
) до тех пор, пока не будет вызванrequire([])
запрос, или что-то, что зависит от него». github.com/jrburke/requirejs/wiki/...метод define для облегчения определения модуля и метод require для обработки загрузки зависимостей
define используется для определения именованных или безымянных модулей на основе предложения с использованием следующей подписи:
С другой стороны, require обычно используется для загрузки кода в файл JavaScript верхнего уровня или в модуль, если вы хотите динамически извлекать зависимости
Обратитесь к https://addyosmani.com/writing-modular-js/ для получения дополнительной информации.
источник
Основные правила:
Вы используете определение, когда вы хотите определить модуль, который будет использоваться повторно
Вы используете требование просто загрузить зависимость
Надеюсь, это поможет вам.
источник
require () и define () оба используются для загрузки зависимостей. Между этими двумя методами есть существенное различие.
Это очень простые парни
Require (): метод используется для запуска немедленных функций. define (): метод используется для определения модулей для использования в нескольких местах (повторное использование).
источник