vue中axios的封裝

來源:互聯網
上載者:User

標籤:code   需要   resolve   push   全域變數   全域   axios   config   第一步   

第一步還是先下載axios

cnpm install axios -S

 

第二步建立一個htttp.js

import axios from ‘axios‘;import { Message } from ‘element-ui‘;axios.defaults.timeout = 5000;axios.defaults.baseURL =‘‘;//http request 攔截器axios.interceptors.request.use(  config => {    // const token = getCookie(‘名稱‘);注意使用的時候需要引入cookie方法,推薦js-cookie    config.data = JSON.stringify(config.data);    config.headers = {      ‘Content-Type‘:‘application/x-www-form-urlencoded‘    }    // if(token){    //   config.params = {‘token‘:token}    // }    return config;  },  error => {    return Promise.reject(err);  });//http response 攔截器axios.interceptors.response.use(  response => {    if(response.data.errCode ==2){      router.push({        path:"/login",        querry:{redirect:router.currentRoute.fullPath}//從哪個頁面跳轉      })    }    return response;  },  error => {    return Promise.reject(error)  })/** * 封裝get方法 * @param url * @param data * @returns {Promise} */export function fetch(url,params={}){  return new Promise((resolve,reject) => {    axios.get(url,{      params:params    })    .then(response => {      resolve(response.data);    })    .catch(err => {      reject(err)    })  })}/** * 封裝post請求 * @param url * @param data * @returns {Promise} */ export function post(url,data = {}){   return new Promise((resolve,reject) => {     axios.post(url,data)          .then(response => {            resolve(response.data);          },err => {            reject(err)          })   }) } /** * 封裝patch請求 * @param url * @param data * @returns {Promise} */export function patch(url,data = {}){  return new Promise((resolve,reject) => {    axios.patch(url,data)         .then(response => {           resolve(response.data);         },err => {           reject(err)         })  })} /** * 封裝put請求 * @param url * @param data * @returns {Promise} */export function put(url,data = {}){  return new Promise((resolve,reject) => {    axios.put(url,data)         .then(response => {           resolve(response.data);         },err => {           reject(err)         })  })}

第三步

在main.js中引入

import axios from ‘axios‘import {post,fetch,patch,put} from ‘./utils/http‘//定義全域變數Vue.prototype.$post=post;Vue.prototype.$fetch=fetch;Vue.prototype.$patch=patch;Vue.prototype.$put=put;

最後在組件裡直接使用

 mounted(){    this.$fetch(‘/api/v2/movie/top250‘)      .then((response) => {        console.log(response)      })  },其餘的方法一樣

 

vue中axios的封裝

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.