>  기사  >  웹 프론트엔드  >  seajs의 모듈 의존성 로딩 처리 예시 분석

seajs의 모듈 의존성 로딩 처리 예시 분석

小云云
小云云원래의
2018-01-26 10:47:391266검색

이 글은 주로 seajs의 모듈 종속성 로딩 처리를 소개하고, seajs 모듈 종속성의 원리, 관련 주의사항, 사용법을 분석하고, 필요한 친구들이 참고할 수 있기를 바랍니다.

최근에 프로젝트를 진행하면서 모듈 종속성과 관련된 몇 가지 문제를 발견했는데 여기에 기록되어 있습니다.

예를 들어 현재 3개의 파일이 있습니다.

/*init.js*/
define(function(require, exports, module){
 require('jquery');
 require('jquery.plugA');
})
/*jquery.plugA.js*/
define(function(require, exports, module){
 require('jquery');
 require('jquery.plugB');
 //code...
})
/*jquery.plugB.js*/
define(functioin(require, exports, module){
 require('jquery');
 //code...
})

예를 들어 init.js, init.js를 실행할 때, jquery.plugA.js, jquery.plugB.js는 모두 jquery에 의존하는데, 이 경우 seajs는 jquery를 어떻게 처리합니까? 한 번만 실행됩니까? 여러 번 실행하시겠습니까? 아니면 다른 방법으로?

여기에서 Yu Bo의 답변을 참조하세요.

모듈 호출에 대한 나의 이해는 호출이 특정 모듈의 인터페이스를 얻는 것을 의미한다는 것입니다. SeaJS에서는 seajs.use, require.async 및 require만 모듈 호출을 생성합니다. 예: var a = require('./a') require('./a')를 실행하면 모듈의 인터페이스를 얻습니다. , 처음 호출되면 모듈 a가 초기화되고 나중에 호출되면 모듈 a의 인터페이스가 직접 반환됩니다. 예를 들어 패키징 후 정의는 모듈 정보를 등록합니다. ) seajs에 모듈을 등록합니다. .cache에서 정의는 유사합니다. seajs.cache[id] = { id: id, dependency: deps, Factory: Factory }

는 순수한 등록 정보입니다.

require('./a')가 필요한 경우에만 seajs.cache['a'].factory가 실행됩니다. 실행 후 seajs.cache['a'].exports가 획득됩니다

관련 권장사항:

seajs 모듈의 파싱 규칙에 대한 자세한 설명과 모듈 사용 요약_Seajs

위 내용은 seajs의 모듈 의존성 로딩 처리 예시 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.