스토어
이전 섹션에서 우리는 "무엇이 일어날지"를 나타내는 액션과 이 액션에 따라 상태를 수정하는 리듀서를 정의했습니다.
스토어는 이들을 함께 가져오는 객체입니다. 스토어는 아래와 같은 일들을 해야 합니다:
애플리케이션의 상태를 저장하고;
getState()
를 통해 상태에 접근하게 하고;dispatch(action)
를 통해 상태를 수정할 수 있게 하고;subscribe(listener)
를 통해 리스너를 등록합니다.
Redux 애플리케이션에서 단 하나의 스토어만 가질 수 있음을 알아두는것이 중요합니다. 만약 데이터를 다루는 로직을 쪼개고 싶다면, 여러개의 스토어 대신 리듀서 조합을 사용할 수 있습니다.
리듀서를 만들었다면 스토어를 만드는건 쉽습니다. 이전 섹션에서 우리는 combineReducers()
를 통해 여러 리듀서를 하나로 합쳤습니다. 우리는 이것을 가져와서 createStore()
에 넘길겁니다.
createStore()
의 두번째 인수로 초기 상태를 지정해줄수도 있습니다. 이는 서버에서 실행중인 Redux 애플리케이션의 상태와 일치하도록 클라이언트의 상태를 채워줄때 유용합니다.
액션을 보내기
스토어를 만들었으니, 우리 프로그램이 작동하는지 검증해봅시다! 아무 UI도 없지만 이미 우리는 수정하는 로직을 테스트할 수 있습니다.
여러분은 스토어에 보관된 상태가 어떻게 바뀌는지 볼 수 있습니다:
우리는 UI를 작성하기도 전에 앱이 어떻게 행동할지 정했습니다. 이 튜토리얼에서는 다루지 않겠지만, 이 시점에서 여러분은 리듀서와 액션 생산자들을 위한 테스트를 작성할 수 있습니다. 이들은 단지 함수이기 때문에 아무것도 모조(mock)할 필요가 없습니다. 이들을 호출하고, 반환하는 것들을 검증하세요.
Source Code
index.js
index.js
다음 단계
우리의 할일 앱을 위한 UI를 만들기 전에, Redux 애플리케이션에서 데이터 흐름을 보기 위해 잠시 옆길로 빠지겠습니다.
Last updated