배열 렌더링하기(react)
react

배열 렌더링하기(react)

리액트에서 배열 랜더링 하기

 

!포인트!

1. map()함수

2. 컴포넌트 2개 사용

3. 고유 키 값이 있어야 함 (없으면 index 값이 들어감)

 

 

첫번째 방법 그대로 넣기

 

import React from 'react';

function UserList() {
  const users = [
    {
      id: 1,
      username: 'velopert',
      email: 'public.velopert@gmail.com'
    },
    {
      id: 2,
      username: 'tester',
      email: 'tester@example.com'
    },
    {
      id: 3,
      username: 'liz',
      email: 'liz@example.com'
    }
  ];
  return (
    <div>
      <div>
        <b>{users[0].username}</b> <span>({users[0].email})</span>
      </div>
      <div>
        <b>{users[1].username}</b> <span>({users[1].email})</span>
      </div>
      <div>
        <b>{users[2].username}</b> <span>({users[1].email})</span>
      </div>
    </div>
  );
}

export default UserList;

 

짧은 코드라면 간단하지만 배열이 많아지면 비효율적이다

 

두번째 방법

import React from 'react';

function User({ user }) {
  return (
    <div>
      <b>{user.username}</b> <span>({user.email})</span>
    </div>
  );
}

function UserList() {
  const users = [
    {
      id: 1,
      username: 'velopert',
      email: 'public.velopert@gmail.com'
    },
    {
      id: 2,
      username: 'tester',
      email: 'tester@example.com'
    },
    {
      id: 3,
      username: 'liz',
      email: 'liz@example.com'
    }
  ];

  return (
    <div>
      <User user={users[0]} />
      <User user={users[1]} />
      <User user={users[2]} />
    </div>
  );
}

export default UserList;

컴포넌트를 한개 더 만들어서 프롭스로 받아와 코드를 줄일 수 있다.

 

세번째 방법

 

import React from 'react'

function User({ user }) {
    return (
        <div>
            <b>{user.username}</b> <span>({user.email})</span>
        </div>
    );
}

// 컴포넌트 두개 생성가능

export default function UserList() {

    const user = [
        {
            id: 1,
            username: 'one',
            email: 'one@naver.com,'
        },
        {
            id: 2,
            username: 'two',
            email: 'two@naver.com,'
        },
        {
            id: 3,
            username: 'three',
            email: 'three@naver.com,'
        },

    ];

    return (
        <div>
            {user.map(u => (
                <User user={u} key={u.id} />
            ))}



        </div>
    )
}

                                                          출력 값 

 

1. 맵 함수를 사용하여 user 배열안의 객체를 u (작명가능 = " 맵함수로 객체를 복사해서 새로 만들었다고 이해함" ) 로 리액트 엘리먼트로 이루어진 배열로 변환해주면 됩니다.

2. 리액트에서 배열을 랜더링할때 key 라는 프롭스를 고유값으로 지정해줘야 한다 위 코드의 경우는 객체의 프로퍼티중 id 가 고유값이기에 키로 지정가능

 

'react' 카테고리의 다른 글

useEffcet 사용법  (0) 2021.11.09
여러개의 input 상태 관리하기  (0) 2021.10.25
input 상태 관리하기  (0) 2021.10.25
useState 를 통해 컴포넌트에서 바뀌는 값 관리하기  (0) 2021.10.25
조건부 렌더링  (0) 2021.10.25