TRY를 통해 배운내용
promise와 async,awiat
- 프라미스 = 비동기 처리 패턴
- 비동기 처리의 가장 큰 의미는 '기다림' 이다.
내가 백에서 받아온 정보를 무조건 넣어줘야 하는데, 코드를 훑을때 그 받아오는 시간을 기다려 주지 않고 훑어 내려가면 받아온 정보가 들어가지 않는다.
이를 방지하기 위해 비동기 처리를 사용하는 것 이다. 백에서 받아온 정보가 들어올때까지 기다려 주는 역할이다.
- await와 async는 프라미스값을 반환하는 함수가 아님에도 불구하고 함수의 결과를 프라미스로 반환 할 수 있도록 도와준다.
리덕스 사용 정리
- 리듀서의 액션이 일어나길 바란다면, 디스패치를 꼭해라
-> useDispatch, dispatch(가져오고 싶은 액션함수)- 리듀서는 두가지 타입으로 작성할 수 있다.
- handleActions : 임포트해서 사용해야 함
- switch 구문
- 액션 생성함수 : 내가 넣어야 할 데이터를 넣어주는 부분
- 액션 생성자 : creatAction
- 리덕스 사용의 목적 : 컴포넌트간의 스테이트 관리 + 백에서 받아오는 값을 컴포넌트에 넣어두면 리로드 할때마다 다시 받아와야 함
(자유이용권 끊어두고 계속 티켓 끊어서 사용하는 꼴)
내가 프로젝트에서 실제 작성한 리덕스 모듈(내가 쓴 글 불러오기)import { createAction, handleActions } from 'redux-actions' import { produce } from 'immer' import axios from 'axios' import {apiGetMyArticle} from '../../api/usersApi' // 내가 쓴 글 액션타입 const GET_MYARTICLE = 'GET_MYARTICLE' // 액션 생성자 const getMyarticle = createAction(GET_MYARTICLE, myarticle => ({ myarticle })) //초기화(초깃값 설정) const initialState = {myarticle: null} -----------------------------------------------------------> // 내가 쓴 글 정보 가지고 오기 액션 생성 함수 const getMyArticleFB = params => { return async function (dispatch, getState, { history }) {const my_article_list = await apiGetMyArticle(params); //apiGetMyArticle()은 서버쪽에서 받아오는 path 정보를 저장해둔 함수를 데려 온 것 이다. // 데이터를 어떤 형식으로 넘겼는지 알 수 있도록 콘솔을 찍어봐야 한다.(data.content 이 부분때문에) console.log(my_article_list); //디스패치는 액션을 호출하는 메서드 이다. 액션 함수에서 getMyarticle이라는 액션을 호출하는 것 이다. dispatch(getMyarticle(my_article_list.data.content)) } ------------------------------------------------------------> //리듀서 부분 export default handleActions( {[GET_MYARTICLE(액션타입)]: (state,action)=> produce(state, draft => { draft.myarticle(액션타입참고) = action.payload.myarticle(액션타입 참고)}) }, initialState ) //나의 액션 생성함수 묶어주기 const actionCreators = {getMyArticleFB} //액션생성함수 내보내기 export { actionCreators }
이외에 배운 여러가지 사실들
- 페이로드 : 제이슨(백에서 넘겨줄때 제이슨 형태로 넘겨준다.)에서 전송하고자하는 데이터 -> jason 안의 data 값이 페이로드이다.
- 토큰의 사용
로그인을 하면 토큰이라는 자유이용권을 발급해서 여러가지 데이터들을 열람할 수 있도록 도와준다. 토큰이 없는 사람은 일부 열람에 제한이 된다.- 서버에서 API받아오기
//apisToken은 axios에서 받아온다. ///mypage/article 서버에서 내게 넘겨줄 데이터 path //get인지 post인지는 서버에서 넘겨주는 값을 확인하고 사용 function apiGetMyArticle(params) { return apisToken.get('/mypage/article',params) };
1. 내가 팀을위해 한 노력