Home > Web Front-end > Vue.js > body text

The perfect combination of Vue and Axios to achieve smooth data requests

PHPz
Release: 2023-07-18 13:37:52
Original
1365 people have browsed it

The perfect combination of Vue and Axios to achieve smooth data requests

In front-end development, it is often necessary to send network requests to obtain data and display it to users, which requires the use of ajax technology. Vue is a popular front-end framework that provides convenient data binding and view control capabilities, while Axios is a Promise-based HTTP library that provides a simple API to send various types of network requests. Combining Vue and Axios makes it easier for us to send requests and interact with the backend.

First, we need to install Vue and Axios. Execute the following command on the command line to install Vue and Axios:

npm install vue axios
Copy after login

After the installation is complete, we can introduce Vue and Axios into the code:

import Vue from 'vue';
import axios from 'axios';
Copy after login

Next, we can install it in the Vue instance Use Axios to send network requests. Here is a simple example:

new Vue({
  el: '#app',
  data: {
    users: [],
  },
  mounted() {
    this.fetchUsers();
  },
  methods: {
    fetchUsers() {
      axios.get('https://api.example.com/users')
        .then((response) => {
          this.users = response.data;
        })
        .catch((error) => {
          console.error(error);
        });
    },
  },
});
Copy after login

In the above code, we call the fetchUsers method in the mounted hook function of the Vue instance, which uses Axios Send a GET request to get user data. After the request is successful, we assign the response data to the users attribute of the Vue instance, and then use this attribute in the template to display the data.

In addition to GET requests, Axios also supports other types of requests such as POST, PUT, and DELETE. Here is an example that demonstrates how to send a POST request using Axios:

methods: {
  addUser() {
    const userData = {
      name: 'John Doe',
      email: 'john.doe@example.com',
    };
    axios.post('https://api.example.com/users', userData)
      .then((response) => {
        console.log(response.data);
      })
      .catch((error) => {
        console.error(error);
      });
  },
},
Copy after login

In the above code, we use Axios to send a POST request in the addUser method to add a new user. The requested data is an object containing the new user's name and email address. After the request is successful, we can access the returned data through response.data.

In addition to basic requests, Axios also provides interceptors (interceptors) functions for intercepting and processing before sending requests or receiving responses. For example, we can add authentication information to request headers or process response data through interceptors. Here is an example:

axios.interceptors.request.use((config) => {
  // 在发送请求前对config进行处理
  config.headers.Authorization = 'Bearer ' + localStorage.getItem('token');
  return config;
}, (error) => {
  return Promise.reject(error);
});
Copy after login

In the above code, we have added a request interceptor via the axios.interceptors.request.use method. Inside the interceptor function, we can modify the configuration information of the request, such as adding authentication information to the request header. The interceptor function needs to return a configuration object or a Promise object.

To sum up, the combination of Vue and Axios allows us to send network requests more conveniently and achieve smooth data request and display. Through the rich features provided by Axios, such as interceptors, we can handle requests and responses more flexibly. I hope that through the introduction of this article, readers can better apply Vue and Axios to achieve front-end development needs.

The above is the detailed content of The perfect combination of Vue and Axios to achieve smooth data requests. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!