리액트에서 map함수 사용하기

2024. 7. 25. 21:21·웹개발/REACT
728x90

오늘은 리액트에서 map 함수를 사용하는 방법에 대해 배워볼 거예요.

map 함수는 배열을 다룰 때 정말 유용한 도구예요. 함께 알아볼까요?


map 함수란?

map 함수는 자바스크립트의 배열 메서드 중 하나예요. 배열의 각 요소를 순회하면서 새로운 배열을 만들어줘요.

간단한 예시를 볼까요?

const numbers = [1, 2, 3, 4];
const doubled = numbers.map(number => number * 2);

console.log(doubled); // [2, 4, 6, 8]

이 코드에서는 numbers 배열의 각 요소를 두 배로 만든 새로운 배열 doubled를 만들었어요.

 

리액트에서 map 함수 사용하기

리액트에서는 map 함수를 사용해서 배열의 데이터를 쉽게 화면에 표시할 수 있어요. 예를 들어, 여러 개의 리스트 아이템을 렌더링할 때 유용해요. 아래의 예시를 함께 볼까요?

import React from 'react';

const App = () => {
  const fruits = ['사과', '바나나', '오렌지', '포도'];

  return (
    <div>
      <h1>과일 리스트</h1>
      <ul>
        {fruits.map((fruit, index) => (
          <li key={index}>{fruit}</li>
        ))}
      </ul>
    </div>
  );
};

export default App;

이 예시에서는 fruits 배열의 각 요소를 map 함수를 사용해서 <li> 태그로 변환했어요. key 속성은 리액트가 각 요소를 고유하게 식별할 수 있도록 도와줘요.

객체 배열 처리하기

배열에 객체가 들어있는 경우도 많아요. 이런 경우에도 map 함수를 쉽게 사용할 수 있어요. 예시를 볼까요?

import React from 'react';

const App = () => {
  const students = [
    { id: 1, name: '철수', age: 10 },
    { id: 2, name: '영희', age: 12 },
    { id: 3, name: '민수', age: 11 },
  ];

  return (
    <div>
      <h1>학생 리스트</h1>
      <ul>
        {students.map(student => (
          <li key={student.id}>
            이름: {student.name}, 나이: {student.age}
          </li>
        ))}
      </ul>
    </div>
  );
};

export default App;

여기서는 students 배열의 각 객체를 <li> 태그로 변환했어요. key 속성으로 id를 사용했는데, 이는 각 학생을 고유하게 식별하기 위해서예요.

 

컴포넌트로 분리하기

map 함수를 사용하다 보면 코드가 길어질 수 있어요. 이럴 때는 컴포넌트로 분리해서 사용하면 더 깔끔해요.

import React from 'react';

const Student = ({ student }) => (
  <li>
    이름: {student.name}, 나이: {student.age}
  </li>
);

const App = () => {
  const students = [
    { id: 1, name: '철수', age: 10 },
    { id: 2, name: '영희', age: 12 },
    { id: 3, name: '민수', age: 11 },
  ];

  return (
    <div>
      <h1>학생 리스트</h1>
      <ul>
        {students.map(student => (
          <Student key={student.id} student={student} />
        ))}
      </ul>
    </div>
  );
};

export default App;

이렇게 Student 컴포넌트를 만들어서 코드가 더 깔끔해졌어요.


map 함수와 함께 주의할 점

  1. key 속성: 각 요소에 고유한 key 속성을 꼭 지정해야 해요. key는 리액트가 어떤 요소가 변경되었는지, 추가되었는지, 삭제되었는지 식별할 수 있게 도와줘요.
  2. 무한 루프 주의: map 함수 안에서 상태를 변경하는 코드를 작성하면 무한 루프에 빠질 수 있어요. 상태 변경은 꼭 필요한 곳에서만 해요.

 

728x90

'웹개발 > REACT' 카테고리의 다른 글

콜백 함수 알려드림.. 믿고 따라오셈  (0) 2024.07.25
useState훅, 이 글만 보시면 충분합니다!!!  (0) 2024.07.25
리액트 컴포넌트에 CSS 스타일링하는 방법과 vite기반의 tailwind주소  (0) 2024.07.25
초보자도 쉽게 배우는 리액트 컴포넌트 작성 방법!  (0) 2024.07.25
리액트 컴포넌트, 아직도 클래스형 쓰는 사람? 이 글 읽고 손절하자!  (3) 2024.07.24
'웹개발/REACT' 카테고리의 다른 글
  • 콜백 함수 알려드림.. 믿고 따라오셈
  • useState훅, 이 글만 보시면 충분합니다!!!
  • 리액트 컴포넌트에 CSS 스타일링하는 방법과 vite기반의 tailwind주소
  • 초보자도 쉽게 배우는 리액트 컴포넌트 작성 방법!
튼튼발자
튼튼발자
프론트엔드 개발자입니다. 헬스를 가끔해서인지 몸이 튼튼한거 같습니다. 그래서 튼튼한 개발자 => 튼튼발자입니다. 프론트엔드 및 관련 개발 내용 블로그 글로 정리해서 올려둡니다.
    250x250
  • 튼튼발자
    튼튼발자
    튼튼발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • 튼튼발자의 끄적끄적 (10)
      • 웹개발 (94)
        • HTML (5)
        • CSS (2)
        • JavaScript (40)
        • TypeScript (5)
        • REACT (22)
        • Next.js (13)
        • GIt (7)
      • 기타 (3)
        • 일상 (3)
      • 프로젝트 (27)
        • Componique: UI 컴포넌트 라이브러리 (18)
        • GitHub Profile Viewer (8)
        • 잇핏 (1)
      • 프론트엔드 개발자로 취업준비 (1)
        • 기술 면접 (7)
        • 코딩 테스트 준비하기 (0)
        • 자기소개서&지원서&이력서 (0)
      • 컴퓨터과학 (12)
        • 운영체제 (6)
        • 알고리즘 (6)
      • 전공 공부 (37)
        • AI(인공지능) (2)
        • 컴퓨터네트워크 (19)
        • 네트워크프로그래밍 (3)
        • SW소프트웨어응용설계 (7)
        • 클라우드컴퓨팅 (3)
        • 웹서비스프로그래밍 (3)
      • PT (0)
      • 취준일기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JavaScript
    tailwind
    네트워크
    github
    트랜스포트계층
    ui컴포넌트
    상태관리
    JS
    프로그래밍
    데이터전송
    코딩
    자바스크립트
    프론트엔드
    프론트엔드개발
    TCP
    리액트
    NextJs
    react
    웹개발
    componique
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
튼튼발자
리액트에서 map함수 사용하기
상단으로

티스토리툴바