Facebook에서 개발한, 프론트앤드 개발을 위한 JavaScript 오픈소스 라이브러리
소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임
👉🏼 특정 기능을 모아둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미
원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대
누가 제어의 흐름을 가지고 있는가
HTML/CSS/JS로 파일을 나누지 않고, 하나의 파일에 명시적으로 작성할 수 있도록 JSX(자바스크립트의 확장 문법)를 활용함
하나의 기능 구현을 위해 여러 종류의 코드를 묶어둔 컴포넌트를 기반으로 개발함
→ 컴포넌트는 서로 독립적이고 재사용 가능함
→ 기능 작동에 집중해서 개발 가능 + 유지 보수 및 유닛 테스트를 하기 쉬움
UI를 구성하는 필수 요소로, 하나의 기능 구현을 위한 여러 종류의 코드 묶음
→ 각자의 기능을 가지고 있으면서 UI의 한 부분을 맡고 있음
여러 개의 컴포턴트를 조합하여 하나의 어플리케이션을 만들 수 있음
모든 리액트 애플리케이션은 최소 한 개의 컴포넌트를 가지고 있음
각각의 컴포넌트는 각자 고유의 기능을 가지고 있으면서 UI의 한 부분을 담당
React로 UI를 구성할 때 사용하는 문법 → JavaScript를 확장한 문법
<div>
<div className="greeting">
<h1>Hello</h1>
</div>
<div>
<h2>World</h2>
</div>
</div>```
function App() {
const name = 'Josh Perez';
return (
<div>
Hello, {name}!
</div>
);
}
function Hello() {
return <div>Hello!</div>;
}
function HelloWorld() {
return <Hello/>;
}
<div>
{
(1+1 === 2) > (<p>정답</p>) : (<p>탈락</p>)
}
</div>
map
메서드 내부에 있는 엘리먼트 즉, 첫 엘리먼트에 넣기const posts = [
{ id: 1, title: "Hello World", content: "Welcome to learning React" },
{ id: 2, title: "Installation", content: "You can install React from npm" }
];
export default function App() {
// 한 포스트의 정보를 담은 객체 post를 매개변수로 받고
// obj를 JSX 표현식으로 바꿔 리턴해주는 함수 postToJSX
const postToJSX = (post) => {
return (
<div key={post.id}>
<h3>{post.title}</h3>
<p>{post.content}</p>
</div>
);
};
return (
<div className="App">
<h1>Hello JSX</h1>
{posts.map(postToJSX)}
</div>
);
}
참고자료
React 공식 홈페이지
[개발상식] 프레임워크(Framework) 와 라이브러리(Library)의 차이