Redux 기반 애플리케이션에서 아키텍처는 Redux store, actions 및 의 세 가지 주요 개념을 중심으로 진행됩니다 reducers. 각 개념을 더 자세히 살펴보고 이들이 어떻게 함께 작동하는지 살펴보겠습니다.
Redux Store
Redux는 store 애플리케이션의 전체 상태를 보유하는 단일 정보 소스입니다. 이는 본질적으로 전체 애플리케이션 상태를 나타내는 데이터를 포함하는 JavaScript 개체입니다. Redux 라이브러리의 함수를 store 사용하여 생성합니다. createStore
Actions
Actions 애플리케이션에서 발생한 일을 설명하는 일반 JavaScript 객체입니다. type
수행 중인 작업 유형을 나타내는 필드를 포함하며 추가 데이터도 포함될 수 있습니다. Actions 액션 개체를 반환하는 함수인 액션 생성자를 사용하여 생성됩니다. 예를 들어:
// Action Types
const ADD_TODO = 'ADD_TODO';
// Action Creator
const addTodo =(text) => {
return {
type: ADD_TODO,
payload: text
};
};
Reducers
Reducers 에 대한 응답으로 애플리케이션의 상태가 어떻게 변경되는지 지정합니다 actions. 리듀서는 현재 상태와 액션을 인자로 받아 새로운 상태를 반환하는 순수 함수입니다. Reducers 함수 를 사용하여 단일 루트 감속기로 결합됩니다 combineReducers
. 간단한 예는 다음과 같습니다.
// Reducer
const todosReducer =(state = [], action) => {
switch(action.type) {
case ADD_TODO:
return [...state, action.payload];
default:
return state;
}
};
// Combine Reducers
const rootReducer = combineReducers({
todos: todosReducer,
// ...other reducers
});
같이 일하다
함수 를 사용하여 액션을 전달하면 dispatch
Redux는 해당 액션을 모든 reducers. 각 감속기는 작업 유형이 자신과 일치하는지 확인하고 그에 따라 상태의 관련 부분을 업데이트합니다. 그런 다음 업데이트된 상태는 Redux에 저장되고 store 연결된 모든 구성 요소는 새 상태에 따라 다시 렌더링됩니다.
예시 시나리오
할 일 목록 애플리케이션을 상상해 보세요. 사용자가 새 할 일을 추가하면 할 일의 유형 ADD_TODO
과 텍스트를 페이로드로 사용하여 작업이 전달됩니다. todos 리듀서는 이 작업을 수신하고 상태에 새 할 일을 추가하고 업데이트된 상태를 반환합니다.
결론
효과적인 상태 관리를 위해서는 Redux store, actions 및 reducers 상호 작용 방법을 이해하는 것이 중요합니다. 이 아키텍처는 문제를 명확하게 분리하고 복잡한 애플리케이션 상태를 쉽게 관리할 수 있도록 해줍니다. Redux를 사용하여 계속 개발하면 이러한 개념이 상태 관리 전략의 기초를 형성하게 됩니다.