웹 프론트엔드 JS 튜토리얼 Javascript에서 Axios와 Fetch의 차이점

Javascript에서 Axios와 Fetch의 차이점

Sep 25, 2024 am 06:16 AM

Difference Between Axios & Fetch in Javascript

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

JavaScript로 문자열 문자를 교체하십시오 JavaScript로 문자열 문자를 교체하십시오 Mar 11, 2025 am 12:07 AM

JavaScript로 문자열 문자를 교체하십시오

jQuery 날짜가 유효한지 확인하십시오 jQuery 날짜가 유효한지 확인하십시오 Mar 01, 2025 am 08:51 AM

jQuery 날짜가 유효한지 확인하십시오

jQuery는 요소 패딩/마진을 얻습니다 jQuery는 요소 패딩/마진을 얻습니다 Mar 01, 2025 am 08:53 AM

jQuery는 요소 패딩/마진을 얻습니다

10 JQuery Accordions 탭 10 JQuery Accordions 탭 Mar 01, 2025 am 01:34 AM

10 JQuery Accordions 탭

10 JQuery 플러그인을 확인할 가치가 있습니다 10 JQuery 플러그인을 확인할 가치가 있습니다 Mar 01, 2025 am 01:29 AM

10 JQuery 플러그인을 확인할 가치가 있습니다

노드 및 HTTP 콘솔로 HTTP 디버깅 노드 및 HTTP 콘솔로 HTTP 디버깅 Mar 01, 2025 am 01:37 AM

노드 및 HTTP 콘솔로 HTTP 디버깅

사용자 정의 Google 검색 API 설정 자습서 사용자 정의 Google 검색 API 설정 자습서 Mar 04, 2025 am 01:06 AM

사용자 정의 Google 검색 API 설정 자습서

jQuery div에 스크롤 바를 추가합니다 jQuery div에 스크롤 바를 추가합니다 Mar 01, 2025 am 01:30 AM

jQuery div에 스크롤 바를 추가합니다

See all articles