React 는 페이스북이 만든 사용자 UI 구축을 위한 라이브러리 이다.
React를 사용하는 이유는 다음 3가지로 말할 수 있다.
SPA 를 통한 더 나은 UI, UX 를 가능하게 한다.
재사용 컴포넌트를 통한 유지보수가 용이해진다.
데이터-화면의 synchronize 가 유리해진다.
컴포넌트 구조
단방향 데이터 흐름
ES6 문법
JSX 문법
Virtual DOM
React 의 Component 가 DOM 에 마운트되고 언마운트 되는 모든 과정을 React Life Cycle 이라 한다.
(Mounting => Update => Unmounting => Error Handling)
React 에서 전역의 상태를 관리하기 위해서 사용하는 방법이다.
기존의 방식은 App.js 와 같은 최상위 컴포넌트에 모든 메소드를 저장하고
그 밑의 하위 컴포넌트들에게 props 로 넘겨주는 방식이었는데 이는 메소드 양이 많아지게 되면 코드 가독성이 굉장히 떨어진다는 단점이 있었다.
이러한 문제점 때문에 나온 방식이 컴포넌트간의 상태들을 한군데다가 모아놓고 공유해서 사용하는 방식이다.
대표적으로 Context API, Redux, MobX 등의 상태관리 툴이 있으며 Context API 보다 Redux 를 자주 사용하는 이유는 대규모 개발에서 유지 보수성이나 작업효율을 높이는데 Redux 가 더 나은 성능을 보여줬기 때문이다.
React-Redux 에서 지켜야할 3가지 규칙이 있는데
단일 스토어야 할 것.
읽기 전용 상태여야 할 것 (기존의 객체는 건들지 않고 새로운 객체를 생성해서 사용할 것)
리듀서는 순수함수여야 할 것. (파라미터 외의 값에는 의존하지 말 것)