이번에는 프론트엔드에서 모듈화를 사용해야 하는 이유를 알려드리겠습니다. , 프론트엔드 모듈화 시 주의사항은 무엇인가요? 실제 사례를 살펴보겠습니다.
CMD, AMD, CommonJS 사양은 무엇을 의미하나요? 어떤 애플리케이션이 있나요?
AMD(Asynchronous Module Definition)는 모듈과 종속성을 단계별로 로드할 수 있는 메커니즘을 지정합니다. 이는 특히 CommonJS 사양의 확장인 브라우저 측의 비동기 로딩에 해당됩니다. 12
Syntax
define(id?, dependency?, Factory);1
id: 정의에 있는 모듈의 이름, 선택 사항입니다. 이 매개 변수가 제공되지 않으면 모듈 이름은 기본값으로 지정되어야 합니다. 모듈 로더가 요청한 스크립트 이름을 지정합니다. .
종속성: 현재 모듈이 의존하고 모듈이 정의한 모듈로 식별되는 배열 리터럴입니다. 종속성 매개변수는 선택사항입니다. 이 매개변수를 생략하면 기본값은 ["require", "exports", "module"]입니다. 그러나 팩토리 메소드의 길이 속성이 3보다 작으면 로더는 함수의 길이 속성에 지정된 개수의 인수를 사용하여 팩토리 메소드를 호출하도록 선택합니다.
Factory 메소드 팩토리: 모듈이 실행될 함수나 객체를 초기화합니다. 함수라면 한 번만 실행되어야 합니다. 객체인 경우 이 객체는 모듈의 출력 값이어야 합니다.
예
define('modal', ['jQuery', 'dialog'], function($, Dialog){$('.modal').show(); Dialog.open(); });1234
AMD의 라이브러리에는 RequireJS, 컬, Dojo 등이 포함됩니다. CommonJS는 서버측 모듈에 대한 사양이며 Node.js는 이 사양을 채택합니다. Node.JS는 처음으로 js 모듈성 개념을 채택했습니다. 모듈에는 함수인 자유 변수 "require"가 있습니다. "require" 함수는 모듈 식별자를 받습니다. "require"는 외부 모듈에서 내보낸 API를 반환합니다. 종속성 주기가 발생하면 전이적 종속성이 필요할 때 외부 모듈의 실행이 완료되지 않았을 수 있습니다. 이 경우 "require"에 의해 반환된 객체에는 require 함수를 호출하기 전에 준비된 출력이 최소한 포함되어야 합니다. 현재 모듈 실행 환경을 입력합니다). 요청한 모듈을 반환할 수 없는 경우 "require"는 오류를 발생시켜야 합니다. 모듈에는 실행 중에 모듈이 자체 API를 추가할 수 있는 개체인 "exports"라는 무료 변수가 있습니다. 모듈은 출력의 유일한 표현으로 "내보내기" 개체를 사용해야 합니다.
Example
exports.add = function() { var sum = 0, i = 0, args = arguments, l = args.length; while (i < l) { sum += args[i++]; } return sum; };1234567
CMD(Common Module Definition)는 SeaJS 승격 과정에서 생성됩니다.
CMD는 중국의 Yu Bo가 제안했습니다. AMD 사양과의 주요 차이점은 정의 모듈과 종속성 도입 부분입니다. AMD는 모듈을 선언할 때 모든 종속성을 지정하고 공식 매개변수를 통해 이를 모듈에 전달해야 합니다.
Example
define(function(require, exports, module) { exports.add = function() { var sum = 0, i = 0, args = arguments, l = args.length; while (i < l) { sum += args[i++]; } return sum; }; });123456789
AMD 모듈과 비교하여 CMD는 Node의 CommonJS 사양 정의에 더 가깝습니다:
define(factory);1
종속성 부분에서 CMD는 동적 소개를 지원합니다.
define(function(require , exports , module){ //the module code goes here });123
require, 내보내기 및 모듈은 형식 매개변수를 통해 모듈에 전달됩니다. 언제든지 수입하세요.
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트기타 관련 기사를 주목하세요!
추천 도서:
위 내용은 프런트엔드에서 모듈성을 사용해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!