Javascript에서 Axios와 Fetch의 차이점
JavaScript에서는 Axios와 기본 Fetch API 모두 HTTP 요청을 만드는 데 사용되지만 기능, 사용 편의성, 기능성 측면에서 약간의 차이가 있습니다. 분석 내용은 다음과 같습니다.
1. 사용 편의성:
-
액시오스:
Axios는 요청 생성 및 응답 처리를 단순화합니다. JSON 응답을 자동으로 구문 분석하므로 작업이 더 쉬워집니다.
1
2
3
axios.get(
'/api/user'
)
.then(response => console.log(response.data))
.
catch
(error => console.error(error));
로그인 후 복사 -
가져오기:
가져오기를 사용하면 추가 단계를 추가하는 JSON 구문 분석을 명시적으로 처리해야 합니다.
1
2
3
4
fetch(
'/api/user'
)
.then(response => response.json())
.then(data => console.log(data))
.
catch
(error => console.error(error));
로그인 후 복사
2. 응답 처리:
- 액시오스: Axios는 응답 상태가 2xx 범위를 벗어나면 자동으로 응답을 해결하고 오류를 발생시키므로 .catch() 블록에서 오류를 직접 처리할 수 있습니다.
-
가져오기:
가져오기를 사용하면 2xx가 아닌 상태 코드(예: 404 또는 500)는 오류로 처리되지 않습니다. 수동으로 응답 상태를 확인하고 필요한 경우 오류를 발생시켜야 합니다.
1
2
3
4
5
6
7
fetch(
'/api/user'
)
.then(response => {
if
(!response.ok)
throw
new
Error(
'Network response was not ok'
);
return
response.json();
})
.then(data => console.log(data))
.
catch
(error => console.error(error));
로그인 후 복사
3. 요청 및 응답 차단:
-
액시오스:
Axios는 내장된 인터셉터를 제공하여 요청을 수정하거나 전역적으로 응답을 처리할 수 있도록 하며, 이는 인증 토큰 추가, 로깅 등에 유용할 수 있습니다.
1
2
3
4
axios.interceptors.request.
use
(config => {
config.headers[
'Authorization'
] =
'Bearer token'
;
return
config;
});
로그인 후 복사 가져오기:
Fetch에는 기본 제공 인터셉터가 없으므로 이 동작이 필요한 경우 사용자 지정 함수에서 가져오기 호출을 수동으로 래핑해야 합니다.
4. 브라우저 호환성:
- 액시오스: Axios는 이전 브라우저(IE 11 이하)에서 작동하며 내부적으로 폴리필을 처리합니다.
- 가져오기: Fetch API는 Internet Explorer에서 지원되지 않습니다. 이전 브라우저에서 이를 지원하려면 whatwg-fetch와 같은 폴리필이 필요할 수 있습니다.
5. 데이터 처리:
-
액시오스:
Axios는 POST 요청 시 자동으로 데이터를 문자열화하고 Content-Type을 application/json으로 설정합니다. 또한 FormData와 같은 다른 형식의 데이터 전송도 쉽게 지원합니다.
1
axios.post(
'/api/user'
, { name:
'John'
});
로그인 후 복사 -
가져오기:
가져오기에서는 데이터를 수동으로 문자열화하고 POST 요청에 대한 헤더를 설정해야 합니다.
1
2
3
4
5
fetch(
'/api/user'
, {
method:
'POST'
,
headers: {
'Content-Type'
:
'application/json'
},
body: JSON.stringify({ name:
'John'
})
});
로그인 후 복사
6. 요청 취소:
-
액시오스:
Axios에는 CancelToken을 사용하여 요청을 취소하는 기능이 내장되어 있습니다.
1
2
3
const
source = axios.CancelToken.source();
axios.get(
'/api/user'
, { cancelToken: source.token });
source.cancel(
'Request canceled.'
);
로그인 후 복사 -
가져오기:
가져오기를 사용하면 AbortController를 사용하여 요청을 취소해야 하는데 이는 좀 더 복잡할 수 있습니다.
1
2
3
const
controller =
new
AbortController();
fetch(
'/api/user'
, { signal: controller.signal });
controller.abort();
로그인 후 복사
7. 오류 처리:
- 액시오스: Axios는 2xx가 아닌 응답에 대해 자동으로 오류를 발생시키며 오류 처리가 더욱 일관되고 중앙 집중화됩니다.
- 가져오기: Fetch는 HTTP 오류 상태 코드가 아닌 네트워크 오류에 대한 약속만 거부하므로 더 많은 수동 오류 처리가 필요합니다.
결론:
- Axios는 기능이 더 풍부하고 사용하기 쉬우며 요청 처리를 위한 더 나은 추상화를 제공합니다.
- 가져오기는 종속성이 덜 필요하지만 오류, 인터셉터, 데이터 처리와 같은 특정 기능을 처리하기 위해 더 많은 수동 작업이 필요한 최신 기본 API입니다.
요청을 더 효과적으로 제어하고 싶다면 가져오기를 계속 사용할 수도 있습니다. HTTP 요청을 단순화하는 것을 원한다면 axios가 더 나은 선택이 될 것입니다.
위 내용은 Javascript에서 Axios와 Fetch의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









