2012-07-19 12 views
35

Jestem nowy w uczeniu się dojo i natknąłem się na funkcje require() i define() i nie mogę obalić żadnego z nich. Ponadto, kiedy będę używał któregokolwiek z nich? Mały demo lub przykład będzie korzystny. Wielkie dzięki!Jaka jest główna różnica między funkcją require() i define() w dojo i kiedy użyjemy?

+1

Innym dobrym związek [Dojo wymagają() w porównaniu określenia()] (http://g00glen00b.be/dojo-require-vs-define/). "define()" zapewnia wartość zwracaną i leniwie ładuje zależności. Służy do definiowania własnych niestandardowych modułów i zależności, których potrzebuje. Głównym zastosowaniem "require()" jest importowanie modułów. Oba są synchroniczne; only require() nie jest leniwy. – FoggyDay

Odpowiedz

59

require i define są częścią interfejsu API asynchronicznego definiowania modułów (AMD).

Używa się define do zdefiniowania modułu, który może być wykorzystany przez inny kod. Ogólnie rzecz biorąc, w pliku javascript będzie używany define. Plik javascript definiuje moduł. Wszystkie pliki Dojo używają definicji.

Używasz require, gdy nie definiujesz modułu, ale potrzebujesz modułów, które zostały zdefiniowane. Ogólnie rzecz biorąc, na stronach HTML będzie używany kod require. Strona HTML nie jest modułem, ale wymaga modułów do prezentacji strony użytkownikowi.

AMD API

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

+0

Bardzo dobra odpowiedź. – Krishna

+0

Odkrył symptom użycia niewłaściwego jest wywołanie zwrotne powracające bezpośrednio przed uruchomieniem kodu ... http://stackoverflow.com/questions/5590618/requirejs-calling-callbacks-before-dependencies-loaded-resolved?rq=1 – prototype

+0

podczas definiowania nowego modułu i potrzebujesz innego modułu, który już utworzyłeś, możesz użyć define, aby wymagać tego modułu – AhammadaliPK

Powiązane problemy