리덕스는 데이터를 한 군데 몰아넣고, 여기저기 꺼내볼 수 있게 해준다~!
그렇다면 리덕스에서 쓰이는 기본 용어들을 알아보자!
Store, Component, Action, Reducer 네가지 용어를 기억하고 흐름을 파악하자
{ [key] : value; }
{type: 'CHANGE_STATE', data:{...}}
export const createBucket = (textBucket) => { return {type: CREATE, textBucket}; }
yarn add redux react-redux
redux
패키지 하나와 react와 redux를 연결해주는 react-redux
총 두개를 설치해주어야 한다.bucket.js
총 3가지, action, action함수, reducer를 만들것이다. 아래 순서대로 만들어 보자!3-1. Actions 생성
- action의 이름은 대문자로 줌 (LODA)
- state값은 객체형식으로 적기
3-2. initialState 생성
- 초기데이터값 설정하기
4. Action Creators 생성
- 함수를 만든다.
- return값에 action의 type명과 가져오는값(여기서는 input된 textBucket값)을 써줌
5. Reducer 생성
export default function reducer(state={}, action={}){ switch(action.type){ case '~action~' : { return ~ ;} default: return state;}}
- export default 로 reducer 함수를 빼주기!
- state와 action값 지정
- switch문으로 action 받아오고, return해서 빼내준다.
configStore.js
6. Store 만들기
- 필요한것 import 해오기
- combineReducers로 reducer 합쳐주기, store에 집어넣기
- export store 해주기
index.js
7. Provider불러오고, store 임포트하기
App.js
1. redux모듈과 connect함수 & 2. action함수 불러오기
- connect 함수 : component와 store를 연결해준다.
- action 함수 : 불러와서, action생성함수를 부르는 함수에서 사용해준다.
3. 상태값 가져오는 함수 & 4. action생성 함수를 부르는 함수 만들기
- 상태값을 가져오는 함수 : 리덕스 스토어에 있는 state상태값을 props의 형태로 넣어줌
- action생성 함수를 부르는 함수 : action을 반환해주고, dispatch로 감시해줌
5. 콘솔에 this.props 찍어보기
- store에 있는 값이 잘 나왔는지 확인!
6. this.state에 있는 데이터를 지우고, 스토어에 있는 데이터로 바꾸기
- App 컴포넌트 안에, this.state로 있던 list를 지우고,
- 상태값을 가져오는 mapStateToProps 함수 안에 state를 props 형태로 넣어준다
7. setState를 this.props.create로 바꾸기
- 리스트를 생성하는 값을 props 형태로 바꿔서 만들어 준다.
1. BucketList 컴포넌트에서 useSelector() 적용하기
2. 몇 번째에 와있는지 알기위해 URL파라미터 적용해보기
3. Detail에서 BucketList 내용 띄우기