일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- JavaScript
- react 기초
- Python
- 자바
- 비동기
- Computer Science
- 알고리즘
- Operating System
- 개발공부
- java
- execution context
- node.js
- 글또
- python algorithm
- 코드스테이츠
- 컴퓨터공학
- OS
- context switching
- 자바스크립트
- 파이썬 알고리즘 인터뷰
- 파이썬
- useState
- REACT
- Zerobase
- codestates
- 운영체제
- 자료구조
- 프로그래머스
- algorithm
- typeScript
Archives
- Today
- Total
Back to the Basics
[React][Codestates] React 기초 II 본문
728x90
React Intro
map을 이용한 반복
Reat에서 여러 데이터를 렌더링 할 때 사용하는 map method에 대해 학습해보자. map method가 생각이 잘 안나면 이전 포스팅 을 잠시 읽어보자..!!
- "In React, the map() function is most commonly used for rendering a list of data to the DOM."
- 만약 블로그에 몇 십, 몇 백개의 포스틀르 하드코딩(hardcoding : 모든 데이터를 코드에 작성하는 것)으로 작성을 한다면 타자연습은 되겠지만, 매우 힘들것이다. 손가락도 아프고,,, 손가락은 소중하다, 그리고 키보드 수명도 줄지않을까..아무튼.. 이럴 때 map을 이용하여 반복 을 하면 나의 손가락 관절과 키보드의 수명을 좀 줄일 수 있을것이다.
**map은 배열의 각 요소를 , 특정 함수를 거쳐 , 새로운 배열로 출력을 해주는 method이다.
- 공부를 할 때에나 업무를 할 떄 반복되는 작업 또는 문서를 하나의 step 또는 하나의 format으로 정해놓으면 그 작업은 훨씬 쉬워지고 간결해진다. 이와 같이 반복적인 요소들을 골라서 배열의 요소로 넣으면 map 함수애 의해 React에 모든 요소를 렌더링 할 수 있다.
- 블로그 post의 요소는 id, title, content 등으로 나뉜다. HTML element에 이 데이터를 적절하게 넣어주어야 한다.
key 속성
- React에서 map을 사용할 때 key를 넣어주어야한다. key는 React가 변경되거나 새로 추가 또는 제거된 항목을 식별할 수 있도록 하기 때문에 중요하다고 한다. Understanding the map() function in React.js
- key 속성값은 id와 마찬가지로 변하지 않고, 예상 가능하며, 유일해야 하기 떄문에 id를 사용하는 것이 좋다고한다. 만약 정 고유한 id가 없는 경우에만 배열 인덱스를 넣어서 해결할 수 있다고한다. (as a last resort)로 최후의 수단으로 사용한다고 한다! React 공식문서에서 더 공부해보자...!!!
참고로 eaport default function Name(){~}은 export your data file as default 이라고한다.
- map()을 이용하여 rendering 하는 것을 코드로 확인해보자 !
const posts=[{
id:1,
title:"Hello Sora Kang",
content:"Welcome to learning React!!!"
},{
id:2,
title:"Introduction",
content:"I want to be a Software Developer "
},{
id:3,
title:"Practice",
content:"Practice Reacat via npm run stsrt"
}];
나는 위의 코드들을 포스팅하고싶다..!
// 아래의 코드는 map을 사용하지 않을 때 하드코딩으로 Rendering을 하는 코드이다.
export default function Blog(){
return (
<div>
<div>
<h3>{posts[0].title}</h3>
<p>{posts[0].content}</p>
</div>
</div>
);
}
일단 한 개를 써보니,, 귀차니즘이 심한 나에겐 너무 힘든 일이다.. 더 쓰지 않아도 저것보다 더 길어질 것이다.
귀찮아서 한 개만 쓴 결과는 아래와 같다.
나머지 두 개는 쓰기가 너무 귀찮다..만약 100개 1000개였으면...ㅜㅜ..
이런 일을 하지 않기위해 map을 사용하면 매우 편리하다.
// 아래의 코드는 map을 사용하여 Rendering을 한 code 이다.
export default function Blog(){
const blogs=posts.map((post)=>(
<div key={post.id}>
<h3>{post.title}</h3>
<p>{post.content}</p>
</div>
));
return <div className="post-blogs">{blogs}</div> ;
}
결과는 아래와 같다.
전체 코드는 여기 git 애 볼 수 있다.
Create React App
Achievement Goals
- Create Ract App이 무엇인지 대략적으로 알 수 있다.
- npx create-react-app으로 새로운 리엑트 프로젝트를 시작할 수 있다
- create-react-app으로 간단한 개발용 React 앱을 실행할 수 있다.
- 리엑트 프로젝트 구성을 대략적으로 이해할 수 있다.
728x90
'Frontend Development > React' 카테고리의 다른 글
[React][Codestates] React SPA & Router (0) | 2021.08.12 |
---|---|
[React] React-State and Lifecycle (0) | 2021.08.11 |
[React] React-Components and Props (0) | 2021.08.09 |
[React] React 기초 I (0) | 2021.08.07 |
[HTML/CSS][Codestates] HTML CSS 기초 - JavaScript Calculator 코드비교 (0) | 2021.07.06 |
Comments