vue中网络请求的封装

复制代码
import axios from 'axios'

export function request(config){
  // 创建实例
  const instance = axios.create({
    baseURL: '请求baseURL',
    timeout: 5000 
  })
  // 请求拦截
  instance.interceptors.request.use((config) => {
    return config
  },err => {
    console.log(err);
  })
  // 响应拦截
  instance.interceptors.response.use((res) => {
    //对响应数据做处理
    let data = res.data
    if(data.code != 后端返回成功时设置的状态码){
        return Promise.reject(data.msg)
    }
    //必须返回,否则拿不到返回的数据
    return data
  }, err => {
    console.log(err);
  })
  // 发送真正的网络请求
  return instance(config)
}
复制代码

使用:首页使用request发送网络请求

复制代码
import { request } from 'network/request'

export function getData(params) {
  return request({
    url: 'home/data'
  })
}

//传参
export function getData(type,page) {
  return request({
    url: 'home/data',
    // get请求传参数params
    params: {
      type,
      page
    }
  })
}
复制代码

页面中使用

复制代码
    // 请求数据
    _getHomeData() {
      getData().then((res) => {
        // console.log(res);
      })
    },

    // 带参数请求数据
    _getGoodsData(type) {
      const page = this.goods[type].page + 1
      getData(type,page).then((res) => {
        // console.log(res);
      })
    }
复制代码

 

posted @   jxweber  阅读(699)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示