Redux

작업
진행 상태
진행일시
학습자

[ Redux ]

redux를 쓰기위해서는 라이브러리를 설치를 해야한다 , 설치 명령어는 아래와 같다 yarn add redux react-redux 또는 npm install redux react-redux

1. Redux를 쓰는 이유는 무엇일까?

props를 쓰지않고 더 간단하게 state에 대한 정보를 모든 컴포넌트가 사용할 수 있도록하기위해
깊은 하위 컴포넌트들도 props 여러번 전송없이 state를 쓸 수 있음

2. 사용방법

1.
먼저 redux 라이브러리를 설치한다
2.
index.js로 가서 redux를 사용하기 위한 import설정을 해준다
a.
import { Provider } from ‘react-redux’;
3.
ReactDom.render안에 <App/> 을 주변으로 방금 import한 <Provider></Provider>로 감싸준다
ReactDOM.render( <React.StrictMode> <BrowserRouter> <Provider> <App /> </Provider> </BrowserRouter> </React.StrictMode>, document.getElementById('root') );
JavaScript
복사
4.
index.js에서 공통으로 사용할 state를 생성한다, 그 생성한 데이터를 방금 <Provider에 props설정을 해준다.
let store = createStore(() => {return [{ id : 0, name = '멋진신발' , quan = '2'}] }); ReactDOM.render( <React.StrictMode> <BrowserRouter> <Provider store={store}> <App /> </Provider> </BrowserRouter> </React.StrictMode>, document.getElementById('root') );
JavaScript
복사
5.
원하는 컴포넌트에가서 redux 셋팅을해주자.
a.
컴포넌트에서 state를 쓰려면 function을 만들어야한다.
b.
export해줄때도 설정이 필요하다
c.
필요한 것들을 import를 해준다
/*예시를 위해 Cart.js라는 컴포넌트를 만들어봤다*/ import React from 'react'; import {Table} from 'react-bootstrap'; import {connect} from 'react-redux'; function Cart(props) { return ( <div> <div> <Table responsive="sm"> <thead> <tr> <th>#</th> <th>상품명</th> <th>수량</th> <th>변경</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>{ props.state[0].name }</td> <td>{ props.state[0].quan }</td> <td>Table cell</td> </tr> </tbody> </Table> </div> </div> ) } /* redux를 쓰기위한 셋팅 1. 컴포넌트에서 state를 쓰려면 function을 만들자 2. export default connect()() -> ex) export default connet(함수명)(Cart) */ function state를props화(state) { return( state : state ) } export default connect(state를porps화)(Cart)
JavaScript
복사