사람에 대한 이메일 정보가 여러 개 등록되어있다고 하면 javascript을 이용하여 객체를 만들고 반복문으로 객체를 만드는 작업을 해야했다. 리액트에서는 더 쉽고 간편하다. 다음과 같은 데이터가 있고 화면에 아래와 같이 나타내고 싶다.
const users = [
{id:1,username:'bob',email:'bob@gmail.com' },
{id:2,username:'aoa',email:'aoa@gmail.com' },
{id:3,username:'bob',email:'coc@gmail.com' }
];
function User({ user }) {
return (
<div>
{user.username} ({user.email})
</div>
);
}
function UserList({ users }) {
return (
<div>
{users.map(user => (
<User user={user} />
))}
</div>
);
}
1. user 객체를 받아서 이름과 이메일을 가지는 div 객체를 만들어준다.
function User({ user }) {
return (
<div>
{user.username} ({user.email})
</div>
);
}
2. users에는 사람별 데이터를 props로 받아온다.
3. javascript의 map을 사용하여 배열을 순차적으로 진행하며 액션을 취한다. <User user={user} /> 을 통하여 User 컴포넌트를 만들 때 props로 user하나를 넘겨준다.
users.map(user => <User user={user} />);
'웹(web) > 프론트엔드-react' 카테고리의 다른 글
리액트 컴포넌트 내에서 반복적으로 계산되는 값 최적화하는 법 (0) | 2021.03.02 |
---|---|
리액트를 다루는 기술 absolute path 사용법 (0) | 2021.02.16 |
inputText 기본 컴포넌트 (0) | 2020.07.03 |
Counter 컴포넌트 (0) | 2020.07.03 |
컴포넌트 사용시 내부에 컴포넌트가 있는 경우 (0) | 2020.07.03 |