카테고리 없음
[개발공부 55일차] axios
BigSik
2023. 5. 7. 19:07
axios란 ?
-> 비동기 통신을 하기위한 리엑트 라이브러리
설치 명령어 : yarn add axios
사용예시
axios.get(url[, config]): GET 요청 - ex.) json 조회
const [todos, setTodos] = useState(null);
const fetchTodos = async () => {
const { data } = await axios.get('http://localhost:4000/todos')
setTodos(data);
}
axios.post(url[, data[, config]]): POST 요청을 보냅니다. ex.) 추가
const [inputValue, setInputValue] = useState({
title: '',
})
// 추가 함수
const onSubmitHandler = async () => {
axios.post('http://localhost:4000/todos', inputValue);
// setTodos([...todos, inputValue]); 이렇게 쓰면 id값이 자동으로 안불러와짐
fetchTodos(); // 조회 함수를 한번 더 불러올 수 있도록 함
}
axios.delete(url[, config]): DELETE 요청을 보냅니다. ex.) 삭제
const [todos, setTodos] = useState(null);
// 삭제 함수
const onDeleteButtonClickHandler = async (id) => {
axios.delete(`http://localhost:4000/todos/${id}`);
setTodos(todos.filter((item) => {
return item.id !== id;
}))
}
axios.patch(url[, data[, config]]): PATCH 요청을 보냅니다. ex.) 수정
const [targetId, setTargetId] = useState('');
const [contents, setContents] = useState('');
//수정함수
const onUpdateButtonClickHandler = async () => {
axios.patch(`http://localhost:4000/todos/${targetId}`, {
title: contents,
})
setTodos(todos.map(item => {
if (item.id == targetId) {
return { ...item, title: contents }
} else {
return item;
}
}))
}