In fact, it is very simple to encapsulate axios in Vue First, create an http folder in the src path and create three files: api.js env.js request.js env.js file This file mainly encapsulates our public address export default { // Development environment dev: { baseUrl: "Development environment public address" }, // Test environment test test: { baseUrl: "Test environment public address" }, //Online interface prod: { baseUrl: "Public address of online environment" } }; request.js file The main purpose here is to create axios and encapsulate request interception and corresponding interception import axios from "axios"; import env from "./env"; //This is a private domain name but you can also leave it blank var vipUrl = "/app"; // Create an axios instance const service = axios.create({ //Here is the baseUrl for the online interface test: env.prod.baseUrl + vipUrl, headers:{},//request header settimeout:2000,//timeout }); //Add request interceptor service.interceptors.request.use( config => { // Do something before sending the request config.headers["deviceType"] = "H5"; console.log("Requested data:", config); return config; }, error => { // Do something about the request error return Promise.reject("error", error); } ); //Add response interceptor service.interceptors.response.use( response => { // Do something with the response data // console.log("returned data", response); return response; }, error => { // Do something with the error return Promise.reject(error); } ); export default service; api.js This file mainly requires the interface address //Import request.js fileimport request from "./request"; // Carousel export function getBanners(data) { return request({ url: "/banner", //This address is the address left after removing the public address and private domain name method: "GET", //The request method supports multiple methods such as get, post, put, delete, etc. data//Parameters to be configured in sending requests. You can also leave it blank if there are no parameters. }); } Finally, the reference in the page If the page needs to request data, then introduce the corresponding method. For example, my homepage needs to introduce a banner. <script> //Introduce the required interface import { getBanners } from "../http/api"; export default { name: "Home", components: {}, mounted() { //Use directly. Then is the callback for successful request. Catch is the callback for failed request getBanners() .then(result => { window.console.log("111", result); }) .catch(err => { window.console.log("222", err); }); }, methods: {} }; </script> The above is the details of how to encapsulate axios requests with vue. For more information about encapsulating axios requests with vue, please pay attention to other related articles on 123WORDPRESS.COM! You may also be interested in:
|
<<: Basic usage tutorial of MySQL slow query log
>>: Summary of problems encountered when installing docker on win10 home version
Table of contents 1. Purpose 2. Grammar 3. Practi...
The main configuration file of Nginx is nginx.con...
Ubuntu 16.04 builds FTP server Install ftp Instal...
Because Ubuntu 20.04 manages the network through ...
The requirements are as follows Export the table ...
If you are a software developer, you must be fami...
What is a memory leak? A memory leak means that a...
I recently wanted to convert a website to https a...
This question is a discussion among netizens in a...
This article example shares the specific code for...
I want to make a docker for cron scheduled tasks ...
Table of contents 1. Install axios 2. Use of axio...
I don't know when it started, but every time ...
Table of contents explain: Summarize Replenish Un...
nohup Command When using Unix/Linux, we usually w...