개발 공부
React 본문
프론트엔드 라이브러리(React,angular,vue )
동적인 웹 페이지가 늘어나고 웹의 크기가 커지자
이를 효율적으로 관리하기위해 많은 라이브러리들이 등장했지만
UI 를 동적으로 나타내기 위해 복잡한 상태를 유지해야했다.
시간이 지날수록 모든 페이지 별로 HTML,CSS,JS 파일을 가지고 있어야 했고
페이지간 이동할 때마다 파일을 서버와 주고 받아야 했기 떄문에 속도,효율성 면에서 떨어졌다.
※정확하게는 시간이 지날수록 보단 사용자의 요구사항이 복잡하고 많아져서 라고 보면된다.
그래서 3세대 기술 Vue / Angular / React 가 나오게 되었고
그중 React를 알아보도록 하겠다.
React
- 2013년 페이스북에서 개발한 라이브러리
- '지속적으로 데이터가 변화하는 대규모 애플리케이션을 구축하는' 목표로 개발
- Angular, Vue 등의 다른 프레임워크와는 달리 리액트는 오직 View만 담당하는 라이브러리
- 그만큼 내장되어 있는 기능이 부족해 third-party 라이브러리(ex. React-Router, Redux)를 함께 사용한다
특징
- Virtual DOM 존재
기존 DOM들은 페이지가 변할 때마다 새로운 HTML을 로드하면서 DOM을 변경하게 되는데
Virtual DOM 은 사용자의 요청에 따라 기존 DOM에서 React 컴포넌트가 리턴하는 값에 의해
필요한 부분만 변경해서 렌더링 된다(연산의 양을 줄일 수 있음)
리액트가 화면을 업데이트 하는 과정을 조금 더 효율적으로 수행하기 위한 구조이다.
- 단방향 데이터 흐름
리액트의 데이터 흐름은 단방향이다
부모에서 자식 한 방향으로만 흐르며 부모의 데이털르 바꿔주기 위해서는 state를 이용해야 한다.
props/state
props
부모 컴포넌트에서 자식 컴포넌트로 전달 해 주는 데이터를 props라고한다.
읽기전용이며 자식 컴포넌트에서 전달받은 props를 변경할 수 없다.
state
컴포넌트의 상태를 나타내며 props와 반대로 변할 수 있다.
각각의 state는 독립적이며 다른 컴포넌트의 직접적인 접근이 불가능하지만
props를 부모 컴포넌트의 state로 받은 경우 자식 컴포넌트에서 변경이 가능하다.
이외 설명