Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 비동기함수
- DOM
- this 객체
- frontendstudy
- Frontend Study
- 리액트
- 메소드 실행
- HTML
- addEventListener
- useState
- 자바스크립트
- 배열
- CSS
- typeScript
- REACT
- useRef
- 컴포넌트
- 렌더링
- webProject
- 이벤트
- promise
- callback함수
- JavaScript
- 함수 실행
- Props
- 배열메소드
- input
- 이벤트핸들링
- try.. catch
- FrontendStydy
Archives
- Today
- Total
이다닷
[React] Day 14 - 배열 렌더링하기 본문
추가내용
UserList.js 추가
=> 현재 방법은 가장 기본적인 방법으로 가장 비효율적인 방법이다.
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;
➡️배열안에 있는 각 원소를 변환하여 새로운 배열 만들어주기
배열이 고정적이라면 상관이 없지만, 배열의 인덱스를 하나하나 조회해가면서 렌더링하는 방법은 결코 효율적이지 않다. 따라서 배열에 있는 각 원소를 변환하여 새로운 배열을 만들어서 자동적으로 데이터를 원하는대로 출력해주도록 하겠다.
📌 map() 함수
기존함수명.map(추가할 함수명)
ex) array.map(square)
UserList.js
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: 'dndhk',
email: 'dndhk@gmail.com'
},
{
id: 2,
username: 'Lee',
email: 'Lee@example.com'
},
{
id: 3,
username: 'dada',
email: 'dada@example.com'
}
];
return (
<div>
{users.map(user => (
<User user={user} key={user.id}></User>
))}
</div>
);
}
export default UserList;
결과사진
📢이렇게 배열에 있는 값만 변경시켜주어도 결과창에는 출력값이 바뀌는 것을 확인할 수 있다.
📌배열을 렌더링 할 때에는 key 라는 props 를 설정해야한다. key 값은 각 원소들마다 가지고 있는 고유값으로 설정을 해야한다. 지금의 경우엔 id 가 고유 값이다.
❓그렇다면 왜 key값을 꼭 사용해주어야 할까?
key 값을 사용하지 않고 리렌더링을 하게 된다면 복잡한 렌더링을 보여준다.
이런 태그가 있다고 생각해보자. 이 태그에서 e를 b와 c 사이에 추가해준다고 할때, key 값을 사용하지 않은 태그는
e를 c자리에, c를 d 자리에, 맨 마지막에 d를 삽입하는 형식으로 렌더링이 진행된다.
하지만 key값을 사용한다면 그냥 b와 c 사이에 e가 삽입되고 끝난다. 이는 많은 데이터를 다룰때 엄청난 성능차이로 나타날 것이다. 따라서 key 값을 무조건 사용해주어야 하는 것이다.
'React' 카테고리의 다른 글
[React] Day 16 - 배열에 항목 제거하기 (0) | 2023.09.20 |
---|---|
[React] Day 15 - useRef로 컴포넌트 안의 변수를 만들어 배열에 항목 추가하기 (0) | 2023.09.19 |
[React] Day 13 - useRef로 특정 DOM 만들기 (0) | 2023.09.14 |
[React] Day 12 - 여러개의 input 상태 관리하기 (0) | 2023.09.13 |
[React] Day 11 - input 상태 관리하기 (0) | 2023.09.12 |