30분가 ES6 / ES2015 코어 마스터 (저급)

에서  삼십분 (의) ES6 / ES2015 코어를 마스터하기 위해 우리가 가장 일반적으로 사용되는 구문을 ES6을 설명 :let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments

철 뜨거운, 그리고 오늘 우리는 몇 가지 다른 유용한 새로운 기능 ES6에 대해 이야기를 계속하면서 말은, 파업을 간다.

수입 수출

이 두 사람은 해당 ES6되는 module기능.

우리는 자바 스크립트에는 모듈 식 시스템 없었다 작성하기 전에, 별도하지만 상호 의존적 인 기능이 상대적으로 작은 프로젝트, 이러한 작은 프로젝트와 연결 후 간단한 방법으로 거대한 프로젝트 JS 분할 할 수 없습니다.

이 두 가지 문제가 발생할 수 있습니다 :

  1. 한편 JS 코드가 부풀어됩니다에 어려운 유지

  2. 그들은 일반적으로 의존성을 가지고 있기 때문에 우리는 매우 자주, 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 항목을

추천

출처www.cnblogs.com/ysx215/p/11390385.html