티스토리 뷰

Javascript/react

컴포넌트 반복

chan20 2022. 1. 9. 16:19

자바스크립트 배열 객체의 내장 함수인 map 함수를 사용하여 반복되는 컴포넌트를 렌더링 할 수 있다. 원하는 규칙에 따라 변환한 후 그 결과로 새로운 배열을 생성할 수 있다.

arr.map(callback, [thisArg])

함수를 설명하자면

  • callback : 새로운 배열의 요소를 생성하는 함수이며 해당 파라미터에 들어갈 것은 다음과 같다.
    • currentValue: 현재 처리하고 있는 요소
    • index: 현재 처리하고 있는 요소의 index값
    • array: 현재 처리하고 있는 원본 배열
  • thisArg(선택 항목) : callback 함수 내부에서 사용할 this 레퍼런스

 

var numbers = [1,2,3,4,5];  var processed = numbers.map(function(num{ 	return num * num;` })

 

Map을 이용하여 컴포넌트를 생성

‘import React from 'react';   const IterationSample = () => {   const names = ['눈사람', '얼음', '눈', '바람'];   const nameList = names.map(name => <li>{name}</li>);   return <ul>{nameList}</ul>; };   export default IterationSample;

 

Key

렌더링을 할 때 어떤 원소에서 변동이 있었는지 파악 할 때 사용

예를들면 유동적인 데이터를 다루었을 때 key값이 없다면 virtual DOM 비교하는 과정에서 리스트를 순차적으로 비교하면서 변화를 감지합니다. 하지만 key가 있을 경우 더욱 빠르게 알아 낼 수 있습니다.

 

‘key 값을 설정할 때는 map 함수의 인자로 전달되는 함수 내부에서 컴포넌트 props를 설정하듯이 설정하면 됩니다. key 값은 언제나 유일해야 합니다’

‘import React from 'react';   const IterationSample = () => {   const names = ['눈사람', '얼음', '눈', '바람'];   const namesList =  						names.map((name, index) =>  						<li key={index}>{name}</li>);   return <ul>{namesList}</ul>; };   export default IterationSample’ 

고유 번호를 이용하고 싶을 땐 index를 이용해서 생성

하지만 배열이 변경될 때는 리렌더링이 어렵다.

'Javascript > react' 카테고리의 다른 글

ref  (0) 2022.01.09
Component, props, state  (0) 2022.01.09
이벤트 핸들링  (0) 2022.01.09
React 란 ?  (0) 2021.12.28