250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 웹 크롤링
- 리액트 메모이제이션
- JS module system
- Js module
- 코어자바스크립트
- next js
- 타입스크립트
- toggle-btn
- 리액트 메모
- 테스트 코드 툴 비교
- 리덕스
- 실행컨텍스트
- 항해99
- 함수형 프로그래밍 특징
- 리액트 렌더링 최적화
- jwt
- 자바스크립트 엔진 v8
- gql restapi 차이
- 웹팩 기본개념
- js배열 알고리즘
- 렌더링 최적화
- FP 특징
- v8 원리
- 항해99 사전스터디
- 알고리즘
- chromatic error
- 항해99 미니프로젝트
- this
- 항해99 부트캠프
- 리액트
Archives
- Today
- Total
Jaeilit
TIL axios.delete 본문
728x90
axios하면서 delete에 고민에 빠진 이유
1. axios 에서 delete 해서 삭제 할 id 값을 넘기면 url 로 넘기면
삭제가 되는데 그러면 어떻게 렌더링 해줄것인가?
왜 프론트에는 삭제가 안되있고 새로고침해야 삭제가 되어있나?
-> 생각해보니 리덕스에서는 삭제를 안했다. axios.delete 는 서버에서 삭제 하는 명령어임.
2. 삭제는 과연 미들웨어 포함되어야하는가?
-> delete는 즉시되야하지않은가 굳이 서버단을 기다렸다가 삭제해야하는가 라는 고민을 했습니다.
생각해보니 서버단을 제외하고 리덕스만 제외할때는 미들웨어가 필요가 없는데
서버도 지워야하니 미들웨어가 포함되어야한다.
//액션함수
const delete_list = createAction(DELETE_LIST, (basket_id) => ({ basket_id }))
// 미들웨어
const deleteListMiddleWares = (basket_id) => {
return function (dispatch, getState, { history }) {
instance
.delete(`/list/${basket_id}`)
.then((res) => {
dispatch(delete_list(basket_id))
})
.catch((err) => {
console.log(err, "삭제에러")
})
}
}
//리듀스
[DELETE_LIST]: (state, action) =>
produce(state, (draft) => {
// 버튼 눌렀을 때 해당 id 값을 받아와서 findIndex로 해당 id 값 찾아서 splice 해주낟.
let idx = draft.basket_list.findIndex((p) => {
return p.id === action.payload.basket_id
})
if (idx !== -1) {
// 배열에서 idx 위치의 요소 1개를 지웁니다.
draft.basket_list.splice(idx, 1)
}
}),
728x90
'TIL' 카테고리의 다른 글
axios 날짜 소팅하기 (0) | 2021.10.20 |
---|---|
오늘 알아볼 키워드 웹소켓 vs REST (양방향 통신, 단방향 통신) (0) | 2021.10.16 |
TIL 정규식 이용하기 입력제한 (0) | 2021.10.12 |
TIL 이미지 업로드 미리보기 (0) | 2021.10.11 |
알아보면 좋을 개념들 (0) | 2021.10.09 |