Programing

Require.JS 사용시기 및 방법 이해

lottogame 2020. 11. 9. 07:40
반응형

Require.JS 사용시기 및 방법 이해


방금 Require.JS로 작업하기 시작했으며 적절한 경우에 사용해야 할뿐만 아니라 이러한 경우에 올바른 사용 방법이 명확하지 않습니다.

현재 Require.JS로 설정하는 방법은 다음과 같습니다. 나는 두 가지 기능을 가지고 functionA()functionB(). 이 두 기능 모두 functionC()제대로 작동하려면 추가 기능이 필요합니다 .

필요한 경우, 즉 functionA () 또는 functionB ()가 호출 될 때만 functionC ()를로드하고 싶습니다. 그래서 다음 파일이 있습니다.

functionC.js

functionC(){
  //do stuff
}

functionA.js

functionA(){  
  define(['functionC'],function(){
    //functionC() is loaded because it is listed as a dependency, so we can proceed
    //do some functionA() stuff
  });
}

functionB.js

functionB(){  
  define(['functionC'],function(){
    //functionC() is loaded because it is listed as a dependency, so we can proceed
    //do some functionB() stuff
  });
}

그렇다면 이것이 올바르게 설정 되었습니까? 그리고 같은 페이지에서 functionA ()와 functionB ()를 모두 호출하면 둘 다 functionC.js 파일을로드하기 때문에 추가 작업이 수행되고 있습니까? 그렇다면 그게 문제입니까? 그렇다면 먼저 functionC.js가 아직로드되었는지 확인하고 아직로드되지 않은 경우에만로드하도록 설정하는 방법이 있습니까? 마지막으로 이것은 Require.JS의 적절한 사용입니까?


define()모듈을 정의하는 데만 사용해야합니다. 코드 조각을 동적으로로드해야하는 위의 예에서는 다음을 사용하는 require()것이 더 적합합니다.

functionA.js

functionA(){
  require(['functionC'],function(functionC){
    //use funcC in here to call functionC
  });
}

몇 가지 참고 사항 :

  • require([])비동기식이므로의 호출자가 functionA해당 함수의 반환 값을 예상하는 경우 오류가있을 수 있습니다. 작업이 완료 functionA될 때 호출되는 콜백을 수락하는 것이 가장 좋습니다 functionA.
  • 위의 코드는 require()모든 호출에 대해 호출합니다 functionA. 그러나 첫 번째 호출 이후에는로드에 대한 패널티가 없으며 functionC.js한 번만로드됩니다. 처음 require()호출되면로드 functionC.js되지만 나머지 시간에는 RequireJS가 이미로드되었음을 알고 있으므로 다시 function(functionC){}요청하지 않고 함수를 호출 functionC.js합니다.

RequireJS 및 JavaScript 모듈성에 대한 자세한 내용은 여기에서 찾을 수 있습니다. RequireJS를 사용한 JavaScript 모듈성 (스파게티 코드에서 라비올리 코드까지)

참고 URL : https://stackoverflow.com/questions/4771025/understanding-when-and-how-to-use-require-js

반응형