웹 프론트엔드 JS 튜토리얼 프런트엔드에서 모듈성을 사용해야 하는 이유는 무엇입니까?

프런트엔드에서 모듈성을 사용해야 하는 이유는 무엇입니까?

Mar 14, 2018 pm 01:50 PM
프런트 엔드 모듈식

이번에는 프론트엔드에서 모듈화를 사용해야 하는 이유를 알려드리겠습니다. , 프론트엔드 모듈화 시 주의사항은 무엇인가요? 실제 사례를 살펴보겠습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

스트림에서 작동 할 때 RXJ 코드가 ​​적용되지 않는 이유는 무엇입니까? 스트림에서 작동 할 때 RXJ 코드가 ​​적용되지 않는 이유는 무엇입니까? Apr 04, 2025 pm 06:27 PM

RXJ를 사용하여 스트림에서 작동 할 때 코드가 적용되지 않는 이유는 무엇입니까? 학습 RXJS ...

인라인 블록 요소가 왜 잘못 정렬됩니까? 이 문제를 해결하는 방법? 인라인 블록 요소가 왜 잘못 정렬됩니까? 이 문제를 해결하는 방법? Apr 04, 2025 pm 10:39 PM

인라인 블록 요소의 잘못 정렬 된 디스플레이에 대한 이유와 솔루션과 관련하여. 웹 페이지 레이아웃을 작성할 때, 우리는 종종 이상하게 겉보기에 이상한 디스플레이 문제가 발생합니다. 비교하다...

H5 페이지 생산에는 지속적인 유지 보수가 필요합니까? H5 페이지 생산에는 지속적인 유지 보수가 필요합니까? Apr 05, 2025 pm 11:27 PM

코드 취약점, 브라우저 호환성, 성능 최적화, 보안 업데이트 및 사용자 경험 개선과 같은 요소로 인해 H5 페이지를 지속적으로 유지해야합니다. 효과적인 유지 관리 방법에는 완전한 테스트 시스템 설정, 버전 제어 도구 사용, 페이지 성능을 정기적으로 모니터링하고 사용자 피드백 수집 및 유지 관리 계획을 수립하는 것이 포함됩니다.

RXJ를 사용하여 스트림 요소를 처리 할 때 출력이없는 이유는 무엇입니까? 운영자를 올바르게 사용하는 방법? RXJ를 사용하여 스트림 요소를 처리 할 때 출력이없는 이유는 무엇입니까? 운영자를 올바르게 사용하는 방법? Apr 04, 2025 pm 06:36 PM

RXJ를 사용하여 RXJ를 사용하여 스트림의 요소에서 작동 할 때의 문제에 대한 토론 ...

요소의 SCSS 변수를 재정의하여 사용자 정의 테마를 구현하는 방법은 무엇입니까? 요소의 SCSS 변수를 재정의하여 사용자 정의 테마를 구현하는 방법은 무엇입니까? Apr 05, 2025 pm 01:45 PM

요소의 SCSS 변수를 재정의하여 사용자 정의 테마를 구현하는 방법은 무엇입니까? 요소 사용 ...

라우터 폴더 아래의 index.js 파일에서 vue.use (vuerouter)를 호출 해야하는 이유는 무엇입니까? 라우터 폴더 아래의 index.js 파일에서 vue.use (vuerouter)를 호출 해야하는 이유는 무엇입니까? Apr 05, 2025 pm 01:03 PM

vue 응용 프로그램을 개발할 때 라우터 폴더 아래에 index.js 파일에 vuerouter를 등록해야 할 필요성이 있으면 종종 라우팅 구성에 문제가 발생합니다. 특별한...

플렉스 레이아웃의 자주색 슬래시 영역이 잘못된 '오버플로 공간'으로 간주되는 이유는 무엇입니까? 플렉스 레이아웃의 자주색 슬래시 영역이 잘못된 '오버플로 공간'으로 간주되는 이유는 무엇입니까? Apr 05, 2025 pm 05:51 PM

플렉스 레이아웃의 보라색 슬래시 영역에 대한 질문 플렉스 레이아웃을 사용할 때 개발자 도구 (d ...)와 같은 혼란스러운 현상이 발생할 수 있습니다.

H5 페이지 제작의 장점은 무엇입니까? H5 페이지 제작의 장점은 무엇입니까? Apr 05, 2025 pm 11:48 PM

H5 페이지 제작의 장점에는 경량 경험, 빠른 로딩 속도 및 사용자 유지 개선이 포함됩니다. 교차 플랫폼 호환성, 다른 플랫폼에 적응할 필요가 없어 개발 효율성을 향상시킵니다. 유연성 및 동적 업데이트, 감사가 필요하지 않아 콘텐츠를 쉽게 수정하고 업데이트 할 수 있습니다. 기본 앱보다 비용 효율적이고 개발 비용이 낮습니다.

See all articles