2012-07-19 3 views
35

Je suis novice dans l'apprentissage du dojo et j'ai rencontré les fonctions require() et define() et je n'arrive pas à comprendre l'une ou l'autre. Aussi, quand devrais-je utiliser l'un ou l'autre? Une petite démonstration ou un exemple serait bénéfique. Merci beaucoup!Quelle est la principale différence entre la fonction require() et define() dans dojo et quand utiliserions-nous l'une ou l'autre?

+1

Un autre bon lien: [Dojo require() par rapport à définir()] (http://g00glen00b.be/dojo-require-vs-define/). "define()" fournit une valeur de retour et charge paresseusement les dépendances. Il est utilisé pour définir vos propres modules personnalisés et les dépendances dont il a besoin. L'utilisation principale de "require()" est l'importation de modules. Les deux sont synchrones; seulement require() est non-paresseux. – FoggyDay

Répondre

59

require et define font partie de l'API de définition de module asynchrone (AMD).

Vous utilisez define pour définir un module qui peut être consommé par un autre code. Généralement, define sera utilisé dans un fichier javascript. Le fichier javascript définit un module. Tous les fichiers Dojo utilisent define.

Vous utilisez require lorsque vous ne définissez pas un module, mais vous avez besoin de modules qui ont été définis. Généralement, require sera utilisé dans les pages HTML. La page HTML n'est pas un module, mais nécessite des modules pour présenter la page à l'utilisateur.

AMD API

https://github.com/amdjs/amdjs-api/wiki/AMD

+0

Très bonne réponse. – Krishna

+0

Découvert un symptôme de l'utilisation de la mauvaise est le retour de rappel immédiatement avant que le code ne fonctionne ... http://stackoverflow.com/questions/5590618/requirejs-calling-callbacks-before-dependencies-loaded-resolved?rq=1 – prototype

+0

Lorsque vous définissez un nouveau module et que vous avez besoin d'un autre module que vous avez déjà créé, vous pouvez utiliser define pour l'exiger – AhammadaliPK

Questions connexes