action : 자바스크립트 객체. store 에게 애플리케이션 데이터를 운반하는 역할을 한다
reducer : action 과 연결됨.
흐름 🎼 : UI 가 dispatch 에게 상태 변한거 없어? 라고 물어봄 그러면 dispatch 가 action을 store 에 전달하고 dispatch 가 reducer 를 호출해서 새로운 상태값을 호출한다.
예시 : b컴포넌트에서 어떤 이벤트가 생겨서, 상태를 변화할 일이 생겼을때 dispatch 라는 함수를 통하여 액션을 스토어에 던져준다. 액션은 상태에 변화를 일으킬 때 참조할 수 있는 객체다. 액션 객체를 받으면 전달 받은 액션의 타입에 따라 어떻게 상태를 업데이트 해야할지 정의해줘야 한다. 이런 업데이트 로직을 정의하는 함수를 reducer 라고 부른다.
리듀서 함수는 두개의 파라미터를 받는다. state( 현재상태) action(액션객체). 이 두 가지 파라미터를 참조하여 새로운 객체를 만들어서 이를 반환한다.
…뭔소린지 모르겠다. 도움!
action은 dispatch 에 전달되고, dispatch 는 reducer 를 호출해서 새로운 state 를 만들어낸다!
모든 상태를 리덕스로 관리하라는 것은 아니다. 컴포넌트 내부에서만 관리해도 되는 상황이라면 컴포넌트 안에서만 관리하면 된다.