리엑트 심화강의-내배캠

그냥차차·2022년 12월 19일
0

내일배움캠프

목록 보기
47/106
post-thumbnail
post-custom-banner

1. 리덕스 툴킷

ㄱ.툴킷설치

  • yarn add react-redux @reduxjs/toolkit 이라고 터미널에 침.

ㄴ. redux랑 reduxToolkit의 차이

  • redux에서 만들었던 actionValue나 actionCreator, Reducer 등이 하나로 합쳐지면서 간소화해짐 그게 createSlice임

ㄷ. Slice로 Reducers관리

  • Slice는 createSlice라는 toolkit의 api를 통해서 만들수 있음.
  • 인자로는 name,initialStage,reducers가 들어감
  • reducers의 로직이 actionCreator가 된다고 보면되고 actionValue도 함수의 이름을따서 자동으로 생성이됨.
  • redux에서는 actionCreator를 내보내줬는데 한번에 내보내줄수있음

ㄹ. config 작성법

  • 왼쪽이 기존redux 작성법이고 오른쪽이 toolkit의 작성법
  • 기존작성법은 combineReducer를 통해서 rootReducer로 합쳐주고 createStore에서rootReducer를 인자로넣어서 사용했었지만
  • toolktit에서는 configureStore로 모듈을 합치고 store생성을 한번에 할 수 있음 그래서 module이 추가되면 reducer 객체안에 추가만해주면됨

ㅁ. redux dev Tolls

  • 크롬에서 확장프로그램 설치하면됨.
  • state가 변하는거까지 확인이 가능한 개발자 툴임.
  • toolkit을 사용하면 별도의 설치가 필요 하지않지만 그외에서 사용하려면 별도의 코드설정이 필요함

2. Json 서버

ㄱ. json서버

  • DB와 API서버를 생성해주는 패키지임 임시적으로 서버로 사용할수있음

ㄴ. 설치

  • yarn add json-server라고 터미널에 침

ㄴ. start하기

  • yarn json-server --watch db.json --port 3001 을 터미널에 치면
  • db.json 파일이 생성이되고 이파일을 db로 삼아서 3001번 포트에서 사용하겠다 라는뜻
  • 이런식으로 배열안에 객체를 넣어서 todos라는걸 만들고
  • 3001/todos 라고치면 db파일안에 todos안에 있는갚이 입력됨
    이걸 get요청이라고 보면됨

3. AXIOS

ㄱ.pathvariable,query

  • pathvariable을 사용하기 = 정해져있는 아이디같은것들을 사용해서 넘겨줄때는 pathvariable을 사용해서 api를 작성해줌
  • query를 사용하기 = ?뒤에 오는것들을 query라고 함. 검색기능 아니면 특정값을 찾을때는 query를 사요함

ㄴ. Get

  • Axios를 get 하려면 인자로는 url이랑 config를 받으면됨

ㄷ. Post

  • post 보내는 방법= todo를 데이터서버로 post할수 있음. 하지만 추가하기 버튼을 누르고 새로고침을 해야만 추가가됨 그래서 리렌더링을 해야함.
  • 리렌더링 해결= 추가한 todo를 setTodo로 보내지 않았기 때문에 리렌더링이 되지않았음 그래서 setTodo를 추가해주면됨.

ㄹ. Delete

  • 삭제하는방법 마찬가지로 리렌더링하려면 setTodo넣으면됨

ㅁ. Patch

  • 이미존재하는 데이터들을 수정할때씀

4. thunk

ㄱ. Middleware

  • action이 reducer로 전달되기전에 중간에 어떤작업을하는것을 미들웨어라고함. 간단히 setTimeout같은거
  • 미들웨어중 redux thunk를 가장많이씀

ㄴ. thunk

  • 리덕스에서 많이 사용하는 미들웨어 중 한개임. dispatch를 사용할때 객체가 아닌 함수를 dispatch할수 있게 해주는것.

ㄷ. thunk 사용하기

  • createAsyncThunk를 사용하면 thunk를 만들수 있음.

4. customHook

  • 반복되는 로직이나 중복되는코드를 customHook을 통해서 관리할 수 있음.
profile
개발작
post-custom-banner

0개의 댓글