首页 分享 Vue教程

Vue教程

来源:花匠小妙招 时间:2024-12-18 09:00

最新推荐文章于 2023-12-14 17:06:28 发布

如果时光可以倒流,我会选择在家陪伴家人 于 2020-11-10 17:09:20 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

目录

简介

安装

返回效果

代码演示

全局配置

Axios实例

封装

拦截器

简介

Axios支持:XMLHttpRequests、node.js发送请求、Promisse、拦截请求和响应、转换请求和响应数据,用法有:

axios()

axios.request()

axios.get()

axios.delete()

axios.head()

axios.post()

axios.put()

axios.patch()

axios.all()

安装

npm install axios --save

返回效果

代码演示

import Vue from 'vue'

import App from './App'

import store from './store'

import axios from 'axios'

Vue.config.productionTip = false

/* 这里记得挂载store,否则this.$store失败,同时注意与import中大小写一致 */

new Vue({

  el: '#app',

  store,

  render: h => h(App)

})

axios.defaults.baseURL = 'http://123.207.32.32:8000'

axios({

  // url: '/home/multidata'

  url: '/home/multidata',

  method: 'get',

  params: {

    type: 'pop',

    page: 1

  }

}).then(res => {

  console.log(res);

});

axios.all(

  [

    axios({url: '/home/multidata'}),

    axios({url: '/home/multidata'})])

.then(results => {

  console.log(results);

  console.log(results[1]);

  console.log(results[1]);

});

全局配置

就是把公共配置抽取出来,这里可以看官网的说明,有很多选项的:

Axios实例

全局配置,就是所有Axios共享同一个配置,但在于某些模块里面,希望使用该模块独有的配置,到了其他模块再去使用其他模块独有的配置,此时就可以使用该特定:

const instance1 = axios.create({

  baseURL: 'http://123.207.32.32:8000',

  timeout: 5000

});

instance1({

  url: '/home/multidata'

})

.then(res => {

  console.log(res);

});

封装

建议只要是引用第三方组件,尽量避免在每个.Vue添加import依赖,否则后续改动,工作量很大的,鉴于此,可以使用这种思想来提供公共服务:

import Axios from "axios";

export function request(config) {

  // 创建axios实例

  const instance = Axios.create({

    baseURL: '',

    timeout: 5000

  });

  // 回调

  return instance(config);

  // return new Promise((resolve, reject) => {

  //   // 创建axios实例

  //   const instance = Axios.create({

  //     baseURL: '',

  //     timeout: 5000

  //   });

  //   // 回调

  //   instance(config)

  //     .then(res => resolve(res))

  //     .catch(err => reject(err));

  // });

}

// 用的时候:request({}).then().catch();

拦截器

import Axios from "axios";

export function request(config) {

  // 创建axios实例

  const instance = Axios.create({

    baseURL: '',

    timeout: 5000

  });

  // axios实例拦截器,既有实例拦截器,也有全局拦截器

  // 拦截请求

  instance.interceptors.request.use(

    config => {

      console.log(config);

      // 这里要返回config对象

      return config;

    },

    err => {

      console.log(err)}

  );

  // 响应拦截

  instance.interceptors.response.use(

    resp => {

      console.log(resp.data);

      return resp.data;

    },

    err => {

      console.log(err);

    }

  );

  // 回调

  return instance(config);

  // return new Promise((resolve, reject) => {

  //   // 创建axios实例

  //   const instance = Axios.create({

  //     baseURL: '',

  //     timeout: 5000

  //   });

  //   // 回调

  //   instance(config)

  //     .then(res => resolve(res))

  //     .catch(err => reject(err));

  // });

}

// 用的时候:request({}).then().catch();

相关知识

从零开始学Vue
vue项目(vue
最好用的 7 款 Vue admin 后台管理系统测评
Vue.js菜鸟教程自学(一)
Java前端Vue
【Vue 快速入门】从零开始搭建 VUE + Element UI后台管理系统框架
vue
vue如何修剪视频
vue如何适配移动端
vue如何实现物流跟踪

网址: Vue教程 https://www.huajiangbk.com/newsview1163544.html

所属分类:花卉
上一篇: PyTorch入门实战教程笔记(
下一篇: 【菜鸟教程】Python 100

推荐分享