생활코딩

링크 : https://www.youtube.com/watch?v=Jr9i3Lgb5Qc&list=PLuHgQVnccGMB-iGMgONoRPArZfjRuRNVc

리덕스란?

자바스크립트 애플리케이션을 위한 예측가능한 상태의 저장소

복잡성은 눈에 보이지 않기 때문에 위험함

리덕스는 애플레이션의 코드의 복잡성을 낮춰줌

리덕스는 단 하나의 원천, 단 하나의 상태를 갖는다.

상태는 객체다

하나의 객체에 애플리케이션에 필요한 정보를 중앙집중적으로 넣는다.

한곳에서 데이터를 관리하기 때문에 흩어져 있는것보단 데이터를 관리하기가 쉬워짐

따라서 하나의 상태를 유지함으로써 애플리케이션의 복잡도를 낮춘다.

redux를 사용하지 않는다면,

컴포넌트끼리 의존성이 높아질 수 있음

redux를 사용한다면,

redux라는 중개자를 통해서 상태를 중앙집중적으로 관리할 수 가 있음

각각의 컴포넌트들은 dispatch를 통해서 action에 값을 넣어서 보내고,

store에다가 상태를 subscribe시켜둠으로써, state가 바뀔때마다 render가 됨

다른 컴포넌트를 알 필요가 없음.

Reducer

Redux.createStore(reducer, initialState)

store.dispatch()

store.getState()

store.subscribe()

Redux dev tools로,

리덕스는 undo와 redo를 쉽게 할 수 있음

왜냐면 리덕스는 상태값을 생성할때 철저하게 통제하고 ,

데이터를 만들때 원본을 복제하고 복제본을 새로운 데이터로 만들기 때문에 독립적인 상태를 만들어서

undo redo가 쉬워짐

문제해결을 훨씬 쉽게할 수 있음 왜냐하면, state가 변화한 값들이 담긴 json파일을 다운로드할 수도 있고,

문제가 발생했던 사용자의 state가 변화한 값들이 담긴 json파일을 업로드할 수도 있어서 문제를 파악할 수 가 있기 때문에!