您好,欢迎来到海亿美食网。
搜索
您的当前位置:首页vue项目中axios请求网络接口封装的示例代码

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

来源:海亿美食网


每个项目网络请求接口封装都是很重要的一块,第一次做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 = getHttp
Vue.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//请求返回数据
 })

Copyright © 2019- hyl365.com 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务