À partir du code source require.js (ligne 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.
*/
La define()
fonction accepte deux paramètres facultatifs (une chaîne qui représente un ID de module et un tableau de modules requis) et un paramètre requis (une méthode d'usine).
Le retour de la méthode d'usine DOIT retourner l'implémentation de votre module (de la même manière que le modèle de module ).
La require()
fonction n'a pas à retourner l'implémentation d'un nouveau module.
À l'aide de define()
vous, vous demandez quelque chose comme "exécutez la fonction que je transmets en tant que paramètre et attribuez ce qui retourne à l'ID que je transmets mais, avant, vérifiez que ces dépendances sont chargées" .
En utilisant require()
vous dites quelque chose comme "la fonction que je passe a les dépendances suivantes, vérifiez que ces dépendances sont chargées avant de l'exécuter" .
La require()
fonction est l'endroit où vous utilisez vos modules définis, afin d'être sûr que les modules sont définis, mais vous n'y définissez pas de nouveaux modules.
define()
), jusqu'à ce qu'il y ait eu unrequire([])
appel qui l'ait demandé, ou quelque chose qui en dépende." github.com/jrburke/requirejs/wiki/…méthode "define" pour faciliter la définition du module et méthode "require" pour gérer le chargement des dépendances
define est utilisé pour définir des modules nommés ou non nommés en fonction de la proposition en utilisant la signature suivante:
exiger d'autre part est généralement utilisé pour charger du code dans un fichier JavaScript de niveau supérieur ou dans un module si vous souhaitez récupérer dynamiquement les dépendances
Reportez-vous à https://addyosmani.com/writing-modular-js/ pour plus d'informations.
la source
Règles générales:
Vous utilisez définir lorsque vous souhaitez définir un module qui sera réutilisé
Vous utilisez require pour charger simplement une dépendance
J'espère que cela vous aidera.
la source
require () et define () tous deux utilisés pour charger les dépendances. Il existe une différence majeure entre ces deux méthodes.
Ses gars très simples
Require (): la méthode est utilisée pour exécuter des fonctionnalités immédiates. define (): La méthode est utilisée pour définir les modules à utiliser dans plusieurs emplacements (réutilisation).
la source