2012-07-19 4 views
35

나는 dojo를 배우는 것에 익숙하지 않고 나는 require()define() 함수를 발견했으며 둘 중 하나의 주위에 머리를 맞출 수가 없다. 또한, 언제 둘 중 하나를 사용합니까? 작은 데모 또는 예제가 유용 할 것입니다. 많은 감사!dojo에서 require()와 define() 함수의 주요 차이점은 무엇이며 언제 사용합니까?

+1

또 다른 좋은 링크 : [도장이 필요() 대 정의()] (http://g00glen00b.be/dojo-require-vs-define/). "define()"은 반환 값을 제공하고 종속성을 느리게로드합니다. 사용자 정의 모듈과 필요한 종속성을 정의하는 데 사용됩니다. "require()"의 주요 용도는 모듈 가져 오기입니다. 둘 다 동기식입니다. 오직 require()가 게으름이 아닙니다. – FoggyDay

답변

59

requiredefine은 비동기 모듈 정의 (AMD) API의 일부입니다.

define을 사용하면 다른 코드에서 사용할 수있는 모듈을 정의 할 수 있습니다. 일반적으로 define은 자바 스크립트 파일에 사용됩니다. 자바 스크립트 파일이 모듈을 정의하고 있습니다. 모든 Dojo 파일은 정의를 사용합니다.

모듈을 정의하지 않고 정의 된 모듈이 필요한 경우 require을 사용합니다. 일반적으로 require은 HTML 페이지에서 사용됩니다. HTML 페이지는 모듈이 아니지만 모듈을 사용자에게 제시해야합니다.

AMD의 API

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

+0

아주 좋은 답변입니다. – Krishna

+0

코드를 실행하기 직전에 반환되는 콜백은 잘못된 것을 사용하는 증상이 발견되었습니다 ... http://stackoverflow.com/questions/5590618/requirejs-calling-callbacks-before-dependencies-loaded-resolved?rq=1 – prototype

+0

새 모듈을 정의 할 때 이미 만든 다른 모듈이 필요하면 define을 사용하여 해당 모듈을 요구할 수 있습니다 – AhammadaliPK