리액트는 페이스북에서 개발한 오픈소스 자바스크립트 라이브러리이다.
프론트엔트 개발에서 많이 사용된다.
- 하나의 기능을 위해서 여러 종류의 코드를 묶어 놓은 것을 컴포넌트라고 한다. 리액트는 컴포넌트를 기반으로 프로그래밍한다.
- 컴포넌트로 분리하면 서로 독립적이고 이 컴포넌트는 재사용이 가능하다.
- 만약 UI의 구성을 재배치 한다고 생각했을 때, 컴포넌트를 사용하지 않았다면, HTML과 JS 모두 다시 작성해야 할지도 모른다.
- 컴포넌트로 분리되면 유지와 보수, 유닛 테스트에 용이하다.
- 상기 장점들로 기능 작동 개발에 집중할 수 있게 해준다.
- 리액트는 한 페이지를 보여주기 위해서 HTML, JS, CSS를 나누어 작성하기 보다는 JSX를 사용하여 JSX와 CSS로 페이지를 구성한다.
- 작성된 JSX를 보고 각 컴포넌트의 기능과 웹의 구성을 짐작할 수 있다.
- 리액트는 페이스북(메타?)에서 개발했기에 안정적이고 매우 유명하다.
- 자바스크립트 프로젝트라면, 어디에든 유용하게 사용될 수 있다.
(기존 프로젝트에 유연하게 적용이 가능하다.)- 리엑트 네이티브로 모바일의 개발도 가능하다.
- 자바스크립트를 확장한 문법으로 이를 통해서 코드를 더 이해하기 쉽게 작성할 수 있다.
- JSX를 Babel이 JS로 변환한다.
JSX 규칙
- 하나의 요소안에 모든 요소가 포함되어야 한다.
- class 대신에 className을 사용해야 한다.
- 자바스크립트를 표현할 때 {}를 통해 코드를 감싸야 한다.
- 사용자 정의 컴포넌트는 대문자로 시작한다.
- 조건부 렌더링에는 삼항연산자 ? 를 사용한다.
- JSX에서 여러개의 HTML 요소를 표현할 때는 map을 이용해 처리한다.
이때에 key 라는 JSX 속성값을 무조건 지정해야 한다.
(주로 배열의 index, id를 key 값으로 지정한다.)
🥟 key는 변하지 않고 예상가능하며 유일해야 한다.