2017-01-11 1 views
0

내 코드에서 가져 오기를 파괴하는 객체를 사용하려고합니다.라이브러리에서 객체를 가져 오지 못했습니다.

내 구성 요소에서지도 만 가져오고 확장하고 싶습니다.

내가

import { map, extend } from lodash; 

가 어떻게 내 코드에서 사용할 수 있습니다 할 것인가?

자바 스크립트는지도를 가지고, 그래서

let arr = [1,3,4]; 
arr.map((item) => console.log(item)) 

을 할 경우 어떻게지도가 아닌 실제지도 방법을 lodash 참조 할 수 있습니다?

추신 : 내가 개체 파괴 방법을 이해하려고합니다. ES6 맵을 사용할 수 있다는 것을 알고 있습니다. 이것은 단지 예일뿐입니다.

+0

맵 (yourfunc) .bind ([1,2,3,4]); –

+2

가져 오기 구문이 구조적으로 변형되지 않습니다. 별칭을 만드는 것입니다. – Bergi

답변

3

이것은 입니다. 기본 가져 오기입니다.

import _ from 'lodash'; 
_.map(...); 

수입라는 이다. 기본 임포트하는 방법으로 그리고 독립적으로 기능 map() 사용

import { map } from 'lodash'; 
map(...); 

본질적 (유일한 의미있는 차이가 value of this되는)와 동일하다. 어떤 구문이 작동하는지는 가져 오는 라이브러리에 달려 있습니다. 라이브러리가 기본 내보내기를 정의하고 이름이 지정된 가져 오기/내보내기에 대해 정의 된 경우에만 기본 가져 오기를 사용할 수 있습니다. 두 가지 모두 동시에 사용할 수 있지만 이는 조금 이상합니다.

기본 가져 오기 이름은 원하는대로 지정할 수 있습니다. 사람들을 혼란스럽게하고 Lodash가 jQuery 인 것처럼 가장하고 싶다면 그렇게 할 수 있습니다.

`import $ from 'lodash';` 

반면에 이름이 지정된 가져 오기에는 바인딩 된 특정 이름이 있습니다. 따라서 기본 가져 오기와 달리 $_에서 명명 된 가져 오기 구문을 사용하면 완전히 다른 개체를 참조하며 라이브러리 내에서 내보내기로 정의되지 않은 경우 throw됩니다.

// These are very different. 
import { $ } from 'lodash'; 
import { _ } from 'lodash'; 

필요한 경우 이름이 지정된 가져 오기 이름을 바꿀 수 있습니다. 위의 경우

import { map as crazyFunc } from 'lodash'; 

crazyFunc 당신의 마음이 원하시는 어떤 이름이 될 수 있지만,있는 그대로 map은 남아 있어야한다, 그렇지 않으면 완전히 다른 객체를 참조하고 라이브러리 내에서 수출로 정의되지 않은 경우에 발생합니다 .

이러한 것들이 동일하다는 것을 이해하는 데 도움이 될 수 있습니다.

import { default as _ } from 'lodash'; 
import _ from 'lib'; 

후자는 전적으로 설탕이다. 기본 내보내기 구문은 default이라는 이름의 내보내기를 만들기위한 설탕입니다.

자세한 내용은 여기에서 다루지 않는 기능을 포함하여 ES6 modules syntax을 참조하십시오.

풀 예 :

import { map } from 'lodash'; 
const squares = map([4, 8], (n) => { 
    return n * n; 
}); 
console.log(squares); // => [16, 64]