컴포넌트 매핑 (Component Mapping)
Component Mapping
map() 사용문법
arr.map(callback, [thisArg])
- callback : 새로운 배열의 요소를 생성하는 함수로서 다음 세가지 인수를 가진다.
- currentValue : 현재 처리되고 있는 요소
- index : 현재 처리되고 있는 요소의 index 값
- array : 메소드가 불려진 배열
- thisArg : (선택항목) callback 함수 내부에서 사용할 this 값을 설정
map() 예제 - ES5
var numbers = [1, 2, 3, 4, 5];
결과 : [1, 4, 9, 16, 25]
위 예제의 ES6 문법 버전
결과 : [1, 4, 9, 16, 25]
ES6 -> ES5 변환 예제
/* ES6 Syntax */
/* ES6 Syntax */
/* ES6 Syntax */
컴포넌트 매핑 예제
리엑트에서 똑같은 원리로 배열을 컴포넌트로 매핑할 수 있다.
(줄 1~12) Contact 컴포넌트를 만들고 하드코딩했다.
(줄 17) App 컴포넌트에서 Contact 컴포넌트를 렌더링
Contact 컴포넌트에서 반복되는 부분을 새로운 컴포넌트로 만들어보자
(줄 1~7) ContactInfo라는 새로운 컴포넌트를 만들었다.
(줄 4) props를 사용하여 이름과 번호를 렌더링한다. props를 객체형태로 받아와서 사용할 수 있다.
(줄 10~20) Contact 컴포넌트에 state를 만들어야 한다.
state를 사용할 때는 constructor(생성자) 메소드에서 state를 초기화 해야한다.
contactDate라는 state를 만들었다.
이 state는 배열 형태이고 그 내부에는 데이터 객체가 들어있다.
(줄 23~27) Contact 컴포넌트의 렌더링 함수 내부에 또 다른 함수를 만들었다. arrow 함수를 사용했다.
const : ES6의 새로운 문법이다. 상수를 뜻한다.
mapToComponent라는 함수에서 우리가 받은 데이터를 매핑할 수 있다. 첫 번째 파라미터는 콜백함수다.
이 콜백함수에서는 컴포넌트를 리턴한다.
contact는 data 배열의 각 data를 contact로 받아들이는 것이고 그 데이터의 인덱스를 i로 받아들이는 것이다.
(참고)
/* ES6 Syntax */
const mapToComponent = (data) => {
};
'Front-End > React.js' 카테고리의 다른 글
[ReactJS] state 내부 배열 처리하기 - Immutability Helper / ES6 spread (0) | 2018.02.16 |
---|---|
[ReactJS] 개발환경 설정, 프로젝트 진행 (0) | 2018.02.14 |
[ReactJS] state (0) | 2018.01.11 |
[ReactJS] props (0) | 2018.01.11 |
[ReactJS] Codepen 설정, ES6 클래스, JSX의 특징 (0) | 2018.01.11 |