ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • React - Redux 셋팅
    Front-end/React 2023. 7. 20. 20:38
    728x90
    반응형

    React Redux

    Reduxjavascript상태(데이터) 관리 라이브러리로 본질은 Node.js의 모듈이다.

    React 에서 Redux를 사용하여 props단계별로 내려 사용하지않고 컴포넌트들 간의 데이터 사용이 자유로워진다.

     

    Redux를 설치하기위해 터미널에 명령어를 입력한다.

    npm install @reduxjs/toolkit react-redux

    Redux를 설치하면 이러한 로그가 나타난다.

     

    redux로 데이터를 저장하기위해 store.js 파일을 만들어 스토어를 생성한다.

    // store.js
    // configureStore와 createSlice를 사용할 수 있도록 불러온다.
    import { configureStore, createSlice } from '@reduxjs/toolkit'
    
    let user = createSlice({
        name : 'user',
        initialState: 'zelord',
    });
    
    
    
    export default configureStore({
        reducer: {
            user : user.reducer
        }
    })

    createSlice이름, 초기값, reducer 함수를 담은 객체를 인자로 받아서 액션타입과 생성자 타입을 자동으로 만들어준다.

    configureStorecreateStore를  추상화 한 것이다.

     

    생성된 store를 index.js에서 받아와 Provider로 불러 하위 태그에서 사용 할 수 있도록 한다.

    // index.js
    // store.js 의 store를 불러온다.
    import store from './store.js';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
      <React.StrictMode>
      
      // Provider로 데이터 사용할 수 있도록 한다.
        <Provider store={store}>
          <BrowserRouter>
            <App />
          </BrowserRouter>
        </Provider >
      </React.StrictMode>
    );

     

    cart.js 에서 redux 로 저장된 상태(데이터)를 불러온다.

    // cart.js
    // useSelector를 불러와 사용한다.
    
    import { useSelector } from 'react-redux';
    
    function Cart() {
    	
        // 
        let user = useSelector((state) => { return state })
        console.log(user);
    
    	...

    useSelectorReduxstore상태값을 반환해주는 hook이다.

     

     

     

    반응형

     

     

     

     

    Redux를 통해 store.js 에서값을 가져와 cart.js에서 값을 보여준다.

     

    store의 여러개의 데이터 전송도 가능하다.

    // store.js
    
    import { configureStore, createSlice } from '@reduxjs/toolkit'
    
    // 1번째 데이터
    let user = createSlice({
        name : 'user',
        initialState: 'zelord',
    });
    
    // 2번째 데이터
    let product = createSlice({
        name: 'product',
        initialState: ['hat', 'shirt', 'glove'],
    })
    
    export default configureStore({
        reducer: {
            user : user.reducer,
            product: product.reducer
        }
    })

    데이터가 2개 나타난다.

    728x90
    반응형

    'Front-end > React' 카테고리의 다른 글

    React - Redux 수정  (0) 2023.07.20
    React - Context API  (0) 2023.07.19
    React - Ajax Axios  (0) 2023.07.18
    React Lifecycle & useEffect - 2  (0) 2023.07.12
    React Lifecycle & useEffect - 1  (0) 2023.07.12
Designed by Tistory.