No código-fonte require.js (linha 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.
*/
A define()
função aceita dois parâmetros opcionais (uma sequência que representa um ID do módulo e uma matriz de módulos necessários) e um parâmetro necessário (um método de fábrica).
O retorno do método de fábrica DEVE retornar a implementação do seu módulo (da mesma maneira que o Padrão do Módulo ).
A require()
função não precisa retornar a implementação de um novo módulo.
Usando define()
você está perguntando algo como "execute a função que eu estou passando como parâmetro e atribua os retornos ao ID que estou passando, mas antes verifique se essas dependências estão carregadas" .
Usando require()
você está dizendo algo como "a função que eu passo tem as seguintes dependências, verifique se essas dependências foram carregadas antes de executá-la" .
A require()
função é onde você usa seus módulos definidos, para garantir que os módulos estejam definidos, mas você não está definindo novos módulos lá.
define()
), até que haja umarequire([])
chamada que a solicite ou algo que dependa dela." github.com/jrburke/requirejs/wiki/…método "define" para facilitar a definição do módulo e método "requer" para lidar com o carregamento de dependência
define é usado para definir módulos nomeados ou não nomeados com base na proposta usando a seguinte assinatura:
O exigir, por outro lado, é normalmente usado para carregar o código em um arquivo JavaScript de nível superior ou dentro de um módulo, caso você deseje buscar dinamicamente dependências
Consulte https://addyosmani.com/writing-modular-js/ para obter mais informações.
fonte
Regras gerais:
Você usa define quando deseja definir um módulo que será reutilizado
Você usa o exigir para simplesmente carregar uma dependência
Espero que isso ajude você.
fonte
require () e define (), ambos usados para carregar dependências. Há uma grande diferença entre esses dois métodos.
É muito simples
Require (): O método é usado para executar funcionalidades imediatas. define (): o método é usado para definir módulos para uso em vários locais (reutilização).
fonte