에서 삼십분 (의) ES6 / ES2015 코어를 마스터하기 위해 우리가 가장 일반적으로 사용되는 구문을 ES6을 설명 :let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments
철 뜨거운, 그리고 오늘 우리는 몇 가지 다른 유용한 새로운 기능 ES6에 대해 이야기를 계속하면서 말은, 파업을 간다.
수입 수출
이 두 사람은 해당 ES6되는 module
기능.
우리는 자바 스크립트에는 모듈 식 시스템 없었다 작성하기 전에, 별도하지만 상호 의존적 인 기능이 상대적으로 작은 프로젝트, 이러한 작은 프로젝트와 연결 후 간단한 방법으로 거대한 프로젝트 JS 분할 할 수 없습니다.
이 두 가지 문제가 발생할 수 있습니다 :
-
한편 JS 코드가 부풀어됩니다에 어려운 유지
-
그들은 일반적으로 의존성을 가지고 있기 때문에 우리는 매우 자주, HTML의 각 스크립트 태그의 위치에주의를 지불하는 반면에, 순서가 잘못된 힘의 버그가 밖으로이었다
ES6는 위에서 언급 한 문제를 해결하기 전에, 우리는 일부 타사 프로그램을 사용해야합니다 (예 : require.js 같은 브라우저) 두 가지 주요 CommonJS (서버 측)과 AMD가있다.
당신이 더 많은 AMD, 특히 require.js을 알고 싶다면, 당신은이 튜토리얼을 볼 수 있습니다 웹에서와에서 ON 모듈 왜 유용한 메커니즘이에있을 수 있습니다를 웹 오늘날에 그 (것)들을 설정하는 데 사용
그리고 지금 우리가 모듈 기능의 ES6 한, 그것은 달성하기 매우 간단합니다, 그것은 일반적인 서버 및 브라우저 모듈 솔루션이 될 수 있습니다.
정적 ES6 설계 모듈은 상기 건물을하려고 할 때 모듈 종속성은 입력 및 출력 변수뿐만 아니라, 판정 될 수있다. CommonJS와 AMD 모듈은, 이런 일들은 런타임에만 결정될 수있다.
위의 디자인 아이디어는 우리가 처음 사용하는 방법을 배우고, 그것은 중요하지 않습니다 이해, 너무 많이 사용 후, 너무 늦게 뒤에 숙련 된 연구 디자인 아이디어에 가지 마세요! 그럼 코드에 우리가 ...
전통적인 표현
첫째, 우리는 require.js 아래의 문구를 검토합니다. 우리는이 JS 파일이 있다고 가정 : index.js
그리고 content.js
지금 우리가하고 싶은 index.js
사용 content.js
, 우리는 어떻게해야합니까 반환 된 결과를?
첫 번째 정의 :
//content.js
define('content.js', function(){ return 'A cat'; })
그런 다음이 필요합니다 :
//index.js
require(['./content.js'], function(animal){ console.log(animal); //A cat })
CommonJS 그것을 작성하는 방법을하는지?
//index.js
var animal = require('./content.js')
//content.js module.exports = 'A cat'
ES6 문구
//index.js
import animal from './content'
//content.js export default 'A cat'
나는 혼란 썼다 대해 개 이상 나열되어, 내 어머니가 더 이상 걱정할 필요가 없습니다 넣어 ...
ES6 모듈의 다른 고급 사용
//content.js
export default 'A cat'
export function say(){ return 'Hello!' } export const type = 'dog'
내보내기 명령 출력 변수를 제외하고, 전술 한 바와 같이, 또한 출력 기능, 또는 클래스 (클래스 출력 모듈 기본적 반응) 할 수있다
//index.js
import { say, type } from './content' let says = say() console.log(`The ${type} says ${says}`) //The dog says Hello
당신이주의하는 것이 여기에 입력 할 때 : 괄호 안에 변수 이름은 가져온 모듈 (content.js) 외부 인터페이스의 이름과 동일해야합니다.
기본 값 (기본값) 출력의 입력 content.js을 원하는 경우에, 외부 중괄호에 쓸 수 있습니다.
//index.js
import animal, { say, type } from './content' let says = say() console.log(`The ${type} says ${says} to ${animal}`) //The dog says Hello to A cat
변수 이름을 수정
이 시점에서이 같은 이름을 수 있기 때문에 우리는 이러한 유형의 변수 이름을 좋아하지 않는다, 그래서 우리는 그 변수 이름을 수정해야합니다. ES6에서 수 as
키 이름 변경을 달성한다.
//index.js
import animal, { say, type as animalType } from './content' let says = say() console.log(`The ${animalType} says ${says} to ${animal}`) //The dog says Hello to A cat
전체로드 모듈
출력 값이로드 지정하는 것 외에도, 당신은 별표이며, 전체 부하를 사용할 수 있습니다 ( *
모든 출력 값은 객체의 상단에로드 된 개체를 지정).
//index.js
import animal, * as content from './content' let says = content.say() console.log(`The ${content.type} says ${says} to ${animal}`) //The dog says Hello to A cat
별표는 일반적으로 *
결합 된 as
보다 적절한 함께 사용합니다.
궁극적 요령
위 : 다음과 같은 시나리오를 생각해 content.js
세 가지 변수 (총 출력 default, say, type
만을 사용해야 우리의 실제 프로젝트의 경우) type
이 변수는, 우리가 다른 두를 필요가 없습니다. 우리는 변수를 입력 할 수 있습니다 :
import { type } from './content'
다른 두 변수가 사용되지 않기 때문에, 우리는 당신의 코드를 포장 할, 그들은 또한 대형 프로젝트는 크게 파일 크기를 줄일 수 있습니다 그래서 그들을 포기, 그들을 무시합니다.
ES6는 우리가 달성하는 데 도움이!
그러나 아직이 기능을 지원하지 않는 여부 browserify 웹팩이 ...
지금이 기능을 달성하려는 경우, 당신은 사용해 볼 수 있습니다 rollup.js을
그들은이 기능은 트리 흔드는라고 넣어, 하, 하, 하, 전면 전체 문서 트리의 흔들림을 팩 의미 것들 모두의 사용에 의존하지 않는 또는 흔들어. . .
그것의 공식 설명 좀 봐 :
당신이 모듈을 필요로 일반적으로, 당신은 모든 것을 가져옵니다. ES2015은 그냥 사용자 정의 빌드 주위에 일 처리하지 않고, 당신이 필요로하는 비트를 가져올 수 있습니다. 그것은 우리가 자바 스크립트 라이브러리를 사용하는 방법의 혁명이고, 그것은 지금 일어나고.
계속하려면
파트너 ES6보다 포괄적 인 이해는 루안 이풍에 의해 작성된 전자 책을 볼 수 원하십니까 인 ECMAScript 6 항목을