>  기사  >  웹 프론트엔드  >  Axios를 사용하여 Vue에서 비동기 요청 및 데이터 상호 작용을 구현하는 방법은 무엇입니까?

Axios를 사용하여 Vue에서 비동기 요청 및 데이터 상호 작용을 구현하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-06-27 09:47:371643검색

Vue는 Axios를 포함하여 많은 인기 라이브러리와 플러그인을 지원하는 널리 사용되는 JavaScript 프레임워크입니다. Axios는 Vue 애플리케이션에서 비동기 요청과 데이터 상호 작용을 가능하게 하는 Promise 기반 HTTP 라이브러리입니다.

이 기사에서는 Axios를 사용하여 Vue 애플리케이션에서 비동기 요청 및 데이터 상호 작용을 구현하는 방법을 알아봅니다. 구체적으로 Vue 컴포넌트 내에서 사용하는 방법, Axios의 기본 구성을 설정하는 방법, Axios 인터셉터 및 오류 처리를 사용하는 방법을 포함하여 Axios의 기본 사항을 살펴보겠습니다.

준비

Axios를 사용하기 전에 Vue 애플리케이션에 설치해야 합니다. Axios 설치는 매우 간단합니다. 터미널에서 다음 명령을 실행하세요.

npm install axios

Axios를 설치한 후 Vue 구성 요소에서 사용할 수 있습니다. Vue 구성 요소에서 Axios 라이브러리를 가져오고 다음 코드를 사용하여 Axios 인스턴스를 생성해야 합니다.

import axios from 'axios';

const axiosInstance = axios.create({
  baseURL: 'https://api.example.com',
});

baseURL은 우리가 액세스할 API의 루트 URL입니다.

Axios 설치 및 구성을 완료한 후 비동기 요청 데이터 상호 작용 구현을 시작하겠습니다.

비동기 요청 시작

Axios는 Promise를 사용하여 비동기 요청을 관리합니다. Axios 인스턴스의 다양한 방법을 사용하여 GET, POST, PUT, DELETE 등 다양한 유형의 요청을 보낼 수 있습니다. 이에 대해 걱정하지 마십시오. 각 방법의 구현에 대해서는 아래에서 자세히 설명하겠습니다.

GET 요청

GET은 Axios에서 가장 일반적으로 사용되는 방법입니다. API에서 리소스를 얻는 데 사용됩니다. Axios 인스턴스의 get 메소드를 사용하여 GET 요청을 시작할 수 있습니다. 예:

axiosInstance.get('/users')
  .then(response => console.log(response.data));

이 요청은 기본 Axios 구성을 사용하고 https://api.example.com/users에서 GET 요청을 보냅니다. 성공하면 콘솔에 응답 데이터가 표시됩니다.

POST 요청

POST 요청은 사용자 로그인, 등록, 데이터 제공 등의 데이터를 API로 보내는 데 자주 사용됩니다. Axios 인스턴스의 post 메소드를 사용하여 POST 요청을 시작할 수 있습니다. 예:

axiosInstance.post('/login', {
  username: 'JohnDoe',
  password: 'secret'
})
.then(response => console.log(response.data));

는 사용자 이름과 비밀번호가 매개변수로 포함된 객체를 사용하여 https://api.example.com/login에 POST 요청을 보냅니다. 성공하면 콘솔에 응답 데이터가 표시됩니다.

PUT 요청

PUT 요청은 기존 리소스를 업데이트하는 데 자주 사용됩니다. Axios 인스턴스의 put 메소드를 사용하여 PUT 요청을 시작할 수 있습니다. 예:

axiosInstance.put('/users/1', {
  name: 'John Doe'
})
.then(response => console.log(response.data));

는 업데이트된 데이터를 매개변수로 포함하는 객체와 함께 https://api.example.com/users/1에 PUT 요청을 보냅니다. 성공하면 콘솔에 응답 데이터가 표시됩니다.

DELETE 요청

DELETE 요청은 리소스를 삭제하는 데 자주 사용됩니다. Axios 인스턴스의 삭제 메소드를 사용하여 DELETE 요청을 시작할 수 있습니다. 예를 들어

axiosInstance.delete('/users/1')
.then(response => console.log(response.data));

는 https://api.example.com/users/1에 DELETE 요청을 보냅니다. 성공하면 콘솔에 응답 데이터가 표시됩니다.

위의 모든 메서드는 Axios Promise를 반환한다는 점에 유의해야 합니다. .then() 또는 .catch()를 사용하여 비동기 요청의 성공과 실패를 관리할 수 있습니다.

Axios의 기본 구성

Vue 애플리케이션에서 Axios를 사용할 때 Axios 인스턴스를 생성하고 일부 구성을 수행하여 요청을 관리할 수 있습니다. 다음은 몇 가지 일반적인 Axios 구성 항목입니다.

baseURL: API의 루트 URL
timeout: 요청 시간 초과(밀리초)
headers: 요청의 기본 헤더
withCredentials: 쿠키 전송 여부
validateStatus: HTTP 상태 정의 코드는 성공적인 상태 코드로 간주되어야 합니다

Axios 모듈 수준 구성을 사용하여 Axios의 기본 구성을 설정할 수 있습니다. 예:

axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.timeout = 5000;

이 예에서 Axios 인스턴스는 https://api.example.com을 사용합니다. API 루트 URL로 사용하고 기본 요청 제한 시간을 5000밀리초로 설정합니다.

Axios Interceptor

Axios Interceptor는 Axios 요청 및 응답 중에 데이터를 가로채고 수정할 수 있는 강력한 기능입니다. 인터셉터를 사용하여 요청하기 전에 Authorization 헤더를 삽입하는 등 특정 기본 동작을 삽입할 수 있습니다.

Axios 인터셉터는 요청 인터셉터와 응답 인터셉터로 구분됩니다. 요청 인터셉터는 요청 전송 프로세스를 처리하고, 응답 인터셉터는 서버에서 반환된 데이터를 처리합니다.

Axios에서는 인터셉터 속성을 사용하여 인터셉터를 설정할 수 있습니다. 각 요청과 응답에 대해 각 인터셉터를 인터셉터에 추가할 수 있습니다. 예:

// 添加一个请求拦截器
axiosInstance.interceptors.request.use(config => {
    // 添加Authorization header
    config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;
    return config;
}, error => Promise.reject(error));

// 添加一个响应拦截器
axiosInstance.interceptors.response.use(response => {
    // 如果响应是一个重定向到登录页面,我们就清空localStorage
    if (response.status === 302 && response.headers.location === '/login') {
        localStorage.removeItem('token');
        localStorage.removeItem('user');
    }
    return response;
}, error => Promise.reject(error));

이 예에서는 요청 인터셉터와 응답 인터셉터라는 두 개의 인터셉터를 추가했습니다. 요청 인터셉터는 각 요청이 전송되기 전에 Authorization 헤더를 추가합니다. 응답 인터셉터는 응답이 로그인 페이지로 리디렉션되는지 확인하고, 그렇다면 로컬 액세스 토큰과 사용자 정보를 지웁니다.

오류 처리

Axios는 오류를 확인하는 몇 가지 방법을 제공합니다. 원칙적으로 .then() 또는 .catch()에서 Axios 오류를 잡을 수 있습니다. 그러나 실제 프로덕션 환경에서는 더 나은 오류 처리가 필요합니다. Axios 오류는 인터셉터를 사용하여 포착하고 처리할 수 있습니다. 예:

axiosInstance.interceptors.response.use(response => response, error => {
    // 处理错误
    if (error.response.status === 401) {
        // 如果响应状态码是401,我们就清空storage
        localStorage.removeItem('token');
        localStorage.removeItem('user');
        // 跳转到登录界面
        router.push('/login');
    }
    return Promise.reject(error);
});

이 예에서는 응답 상태 코드가 401이면 로컬 저장소의 토큰과 사용자 정보를 지우고 로그인 페이지로 이동합니다.

결론

Vue는 Axios를 사용하여 Vue 애플리케이션에서 API 및 데이터 상호 작용에 대한 비동기 요청을 구현하는 강력한 프런트 엔드 프레임워크입니다. Axios는 요청 및 응답 중 비동기 오류를 처리하기 위해 다양한 HTTP 메서드와 인터셉터를 처리하는 사용하기 쉬운 HTTP 라이브러리입니다. Axios를 사용하여 Vue 애플리케이션을 백엔드 API에 연결하고 인터셉터 및 오류 처리를 통해 Vue 애플리케이션을 향상시킬 수 있습니다.

위 내용은 Axios를 사용하여 Vue에서 비동기 요청 및 데이터 상호 작용을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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