首页 > 编程 > JavaScript > 正文

vue项目中axios请求网络接口封装的示例代码

2019-11-19 12:20:13
字体:
来源:转载
供稿:网友

每个项目网络请求接口封装都是很重要的一块,第一次做Vue项目,我们的封装方法如下:

(1).新建一个js文件,取名api.js

(2).引入 axios ,mint-UI ,如下图:

import axios from 'axios'import {MessageBox, Toast} from 'mint-ui'axios.defaults.timeout = 50000//默认请求超时时间axios.defaults.headers = '请求头'

(2).封装get方法

export function getHttp (url, params = {}) { // 创建动画mint-ui Indicator.open({ text: '加载中...', spinnerType: 'fading-circle' }) return new Promise((resolve, reject) => { axios.get(url, {  params: params })  .then(response => {  resolve(response.data)   Indicator.close() // // 关闭动画  })  .catch(err => {  reject(err)   Indicator.close() // // 关闭动画  MessageBox.alert('message', err)  }) })}

(4).封装post方法

export function postHttp (url, data = {}) { Indicator.open({ text: '加载中...', spinnerType: 'fading-circle' }) return new Promise((resolve, reject) => { axios.post(url, data)  .then(response => {  if (response.data.status == 1) {   resolve(response.data)  } else {   Toast(response.data.msg)  }  Indicator.close() // // 关闭动画  }, (err) => {  reject(err)  Indicator.close()  }) })}

(5).封装后方法的使用

在main.js中引入全局变量

import {getHttp, postHttp} from './config/api'Vue.prototype.$getHttp = getHttpVue.prototype.$postHttp = postHttp//get网络请求  this.$getHttp(this.$shopUrl + 'api/product/list',)  .then((response) => {   response.result//请求返回数据  }) // post网络请求  this.$postHttp(this.$shopUrl + 'api/product/list',)  .then((response) => {   response.result//请求返回数据  })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表