
: 웹 서버에 데이터 요청을 보내기 위한 XML HttpRequest 객체 브라우저와 데이터를 보여주기 위한 JavaScript, HTML DOM의 조합
= 페이지 새로고침 없이 서버에 요청
= 서버로부터 데이터를 받고 작업을 수행
import axios from 'axios'
Get요청
axios.get('url')
요청 결과
axios.get('url').then()
🚩 오류가 난다면?
catch() 사용으로 오류 처리!
→ error 객체를 이용해 오류에 대한 주요 정보 확인할 수 있음
error.response.statue : 응답 상태코드 정보
error.response.headers : 응답 헤더 정보
: 자바스크립트 상태관리 라이브러리
npm install @reduxjs/toolkit react-redux
❓상태란?
→ 자식 컴포넌트들 간의 다이렉트 데이터 전달은 불가,
상태를 관리하는 부모 컴포넌트를 통해서 주고 받아야함
→ 상태를 관리하는 상위 컴포넌트에서 계속 내려 받아야함 => Props drilling 이슈
⇒ 리덕스를 쓰면 상태관리를 컴포넌트 밖에서!
: 컴포넌트와 별개로 상태가 관리되는 오직 하나의 공간
: 앱에서 스토어에 운반할 데이터
: Reducer가 주문을 보고 Store의 상태를 업데이트
→ dispatch() 사용해 Reducer호출 → Store 생성
-리듀서 함수가 받는 두 가지 파라미터
🌟셋팅1 : store.js 파일 생성
import {configureStore} from '@reduxjs/toolkit'
export default configureStore({
reducer: {
}
})
🌟셋팅2 : index.js
import {Provider} from "react-redux";
...
root.render(
<Provider store={store}>
<BrowserRouter>
<App/>
/*props 없어도
store.js에 있던 state 사용가능*/
</BrowserRouter>
</Provider>
)
store에 state 보관하고 쓰는 법
{name : 'state이름', initialState: 'state값'} 넣어서 state 생성{작명 : createSlice만든거.reducer}import {configureStore, createSlice} from '@reduxjs/toolkit'
let user = createSlice({
name: 'user',
initialState: [10, 11, 12]
})
export default configureStore({
reducer: {
user : user.reducer,
stock : stock.reducer,
}
})
사용
import {useSelector} from "react-redux"
function Cart(){
let allState = useSelector((state)={return state})
return(...
)
}
아무 컴포넌트에서 useSelcector((state)=>{return state}) 쓰면 store안에 있는 모든 state가 그 자리에 남음