자바스크립트 애플리케이션에서 상태를 효율적으로 관리할 수 있게 도와주는 도구입니다. 저번에 배웠던 리액트로 만들 수 있는 싱글 페이지 애플리케이션은 data혹은 UI가 복잡, 다양해지는 경우가 많아질수 있음으로 하나의 메모리, 즉 store라는 중간자를 통해 상태를 업데이트하고 새로운 상태를 전달받는 형식을 말합니다. 긍까 왜쓰냐면 여러 컴포넌트간에 상태전달이 용이하게 하기위해서입니다.
Redux의 용어는 아래와 같습니다.
-Action : 상태의 변화가 필요할 때 액션을 발생시키고 액션은 하나의 객체로 표현됩니다.
-Action Creator : 액션 을 만드는 생성함수입니다. data라는 파라미터를 입력받아 액션을 객체 형태로 반환하는 역할을 합니다.
-Reducer : 변화를 일으키는 함수이며, 이전 상태와 액션을 파라미터로 받아서 로직에 의해 변화된 상태값을 반환합니다.
-Store : 컴포넌트 외부에 있는 상태 저장소입니다. 스토어 안에는 현재 상태들, 리듀서, 그리고 몇가지 내장함수들을 포함하고 있습니다.
-Dispatch : 스토어의 내장 함수 중 하나로, 액션을 발생시키는 역할을 하고 디스패치가 액션을 발생시켜 스토어에게 상태변화가 필효하다는것을 알립니다.
긍까 정리하자면 추가, 삭제와 같은 액션타입을 정의하면 액션 함수는 각각의 액션타입과 파라미터를 입력받아서 객체 형태로 반환한뒤 상태의 변화가 필요해지면 디스패치로 액션을 스토어에게 알리고 스토어로 전달된 액션은 스토어의 리듀서 함수를 호출시키고 호출된 리듀서 함수는 이전 상태와 액션타입을 파라미터로 전달 받아 정의된 로직대로 현재 상태값을 변화시켜 변화된 상태를 반환한다. 반환된 상태는 스토어에 저장된다.