[javascript] Parcel에서 Redux를 사용하는 방법은?
- 의존성 설치:
npm install redux react-redux
-
Redux Store 생성: Redux 애플리케이션의 상태를 저장하는 Redux Store를 생성해야 합니다.
src
디렉토리에store.js
파일을 생성하고 다음과 같은 코드를 추가합니다.import { createStore } from 'redux'; import rootReducer from './reducers'; const store = createStore(rootReducer); export default store;
-
Reducer 작성: Reducer는 애플리케이션의 상태를 변경하는 로직을 포함하는 함수입니다.
src
디렉토리에reducers.js
파일을 생성하고 필요한 Reducer를 작성합니다.import { combineReducers } from 'redux'; import counterReducer from './counterReducer'; const rootReducer = combineReducers({ counter: counterReducer }); export default rootReducer;
-
Reducer 구현:
src
디렉토리에counterReducer.js
파일을 생성하고 다음과 같은 코드를 추가합니다.const counterReducer = (state = 0, action) => { switch (action.type) { case 'INCREMENT': return state + 1; case 'DECREMENT': return state - 1; default: return state; } } export default counterReducer;
-
컴포넌트와 Redux 연결: Redux를 사용할 컴포넌트를 만들어야 합니다. 예를 들어,
src
디렉토리에Counter.js
파일을 생성하고 다음과 같은 코드를 추가합니다.import React from 'react'; import { connect } from 'react-redux'; const Counter = ({ count, increment, decrement }) => ( <div> <h1>{count}</h1> <button onClick={increment}>Increment</button> <button onClick={decrement}>Decrement</button> </div> ); const mapStateToProps = state => ({ count: state.counter }); const mapDispatchToProps = dispatch => ({ increment: () => dispatch({ type: 'INCREMENT' }), decrement: () => dispatch({ type: 'DECREMENT' }) }); export default connect(mapStateToProps, mapDispatchToProps)(Counter);
-
애플리케이션에서 Redux Store 사용: 애플리케이션의 엔트리 포인트로 사용되는 파일에서 Redux Store를 사용하도록 설정해야 합니다. 예를 들어,
src
디렉토리의index.js
파일에서 다음과 같은 코드를 추가합니다.import React from 'react'; import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; import store from './store'; import Counter from './Counter'; ReactDOM.render( <Provider store={store}> <Counter /> </Provider>, document.getElementById('root') );
위의 단계를 따라서 Redux를 사용할 수 있게 되었습니다. 이제 Parcel을 실행하여 애플리케이션을 번들링하고 실행시킬 수 있습니다.
더 자세한 내용은 Redux 공식 문서를 참조하시기 바랍니다.