commonjs , amd , es6

1765 단어 전단
인용https://www.cnblogs.com/chenguangliang/p/5856701.html
ES6 완 일 봉:http://es6.ruanyifeng.com/#docs/module
commonjs : CommonJS 가 정의 하 는 모듈 은 {모듈 참조 (require)} {모듈 정의 (exports)} {모듈 표지 (module)} 로 나 뉘 어 서버 에 사 용 됩 니 다.  require  동기 화 입 니 다.이 서버 쪽 은 문제 가 되 지 않 습 니 다. 모든 모듈 이 로 컬 하 드 디스크 에 저장 되 어 있 기 때문에 동시에 불 러 올 수 있 습 니 다. 대기 시간 은 하 드 디스크 의 읽 기 시간 입 니 다.그러나 브 라 우 저 에 대해 서 는 모듈 이 서버 에 놓 여 있 기 때문에 대기 시간 은 네트워크 속도 의 속도 에 달 려 있 고 오래 기 다 려 야 할 수도 있 으 며 브 라 우 저 는 '가사' 상태 에 있 습 니 다.브 라 우 저 엔 드 모듈 은 '동기 화 로드' (synchronous) 를 사용 할 수 없고 '비동기 로드' (asynchronous) 만 사용 할 수 있 습 니 다.이것 이 바로 AMD 규범 이 탄생 한 배경 이다.
amd:  AMD 도 require () 문 구 를 불 러 오 는 모듈 을 사용 하여 규범 을 작성 합 니 다. require ([module], callback);  모듈 은 특정한 define () 함수 로 정의 해 야 합 니 다.한 모듈 이 다른 모듈 에 의존 하지 않 는 다 면 define () 함수 에 직접 정의 할 수 있 습 니 다.
es6:  exportimport.export 명령 은 모듈 의 대외 인터페이스 에 사용 되 고 import 명령 은 다른 모듈 이 제공 하 는 기능 을 입력 하 는 데 사용 된다.
역사적 으로 자바 스 크 립 트 는 모듈 (module) 시스템 이 없어 서 큰 프로그램 을 서로 의존 하 는 작은 파일 로 나 누 어 간단 한 방법 으로 조립 할 수 없 었 다.다른 언어 는 모두 이런 기능 을 가지 고 있다. 예 를 들 어 Ruby 의 require, Python 의 import, 심지어 CSS 도 @import 가 있 지만 자 바스 크 립 트 는 이런 분야 의 지원 이 없 기 때문에 대형 하고 복잡 한 프로젝트 를 개발 하 는 데 큰 장 애 를 형성 했다.
ES6 에 앞서 지역 사 회 는 일부 모듈 로드 방안 을 제 정 했 는데 가장 중요 한 것 은 CommonJS 와 AMD 두 가지 가 있다.전 자 는 서버 에 사용 되 고 후 자 는 브 라 우 저 에 사용 된다.ES6 는 언어 표준 차원 에서 모듈 기능 을 실 현 했 고 상당히 간단하게 구현 되 어 CommonJS 와 AMD 규범 을 완전히 대체 하여 브 라 우 저 와 서버 에 통용 되 는 모듈 솔 루 션 이 될 수 있다.
ES6 모듈 의 디자인 사상 은 가능 한 한 정태 화 되 어 컴 파일 할 때 모듈 의 의존 관계 와 입 출력 변 수 를 확정 할 수 있 도록 하 는 것 이다.CommonJS 와 AMD 모듈 은 모두 실행 할 때 만 이 물건 들 을 확인 할 수 있 습 니 다.예 를 들 어 CommonJS 모듈 은 대상 이 고 입력 할 때 대상 속성 을 찾 아야 합 니 다.

좋은 웹페이지 즐겨찾기