Vue组件之axios_2023-01-07

2023-01-06  本文已影响0人  微笑碧落

前言

1. 安装

1.1 下载

npm install --save axios vue-axios

1.2在main.js文件中注册

import VueAxios from 'vue-axios'
import axios from 'axios'

const app = createApp(App)
app.use(VueAxios,axios)
app.use(ElementPlus)

1.3使用

this.axios.get(api).then((response) => {
  console.log(response.data)
})

2. 不使用vue-axios的情况

vue3的写法和组件的使用

import { createApp } from 'vue'
app.config.globalProperties.$axios = axios

使用

this.$axios.get

3. 不使用全局变量的情况

<script>
import axios from 'axios'
data(){
  return {
    axios: axios
  }
},
</script>

4. axios快捷方法

     // 快捷发起POST请求,data设置请求的参数
     axios.post(url[, data[, config]])
     // 快捷发起DELETE请求
     axios.delete(url[, config])
     // 快捷发起HEAD请求
     axios.head(url[, config])
     // 快捷发起OPTIONS请求
     axios.options(url[, config])
     // 跨界发起PUT请求
     axios.put(url[, data[, config]])
     // 快捷发起PATCH请求
     axios.patch(url[, data[, config]])

5. axios使用自己的配置来进行数据请求(参数是一个配置对象)

this.axios({method:'get', url:''})

5.1 配置清单

image.png

5.2 实例化axios,使用自己的个性化配置。

const instance = this.axios.create({})

5.3 axios默认配置

this.axios.defaults.baseURL=''

6. axios请求的返回

7. axios拦截器

7.1 请求前拦截

    this.axios.interceptors.request.use(
        config=>{
          console.log(config)
          return config
        },
        error => {
          console.log(error)
          return Promise.reject(error)
        }
    )

7.2 请求后拦截

this.axios.interceptors.response.use()

7.3 移除拦截器

let i =   this.axios.interceptors.request.use(
        config=>{
          console.log(config)
          return config
        },
        error => {
          console.log(error)
          return Promise.reject(error)
        }
    )

this.axios.interceptors.request.eject(i)

8. 跨域的处理

module.exports = {
  devServer: {
    proxy: {
      //以/myApi开头的请求进行代理
      '/myApi': {
        target : 'http://localhost',
        changeOrigin : true, //允许跨域
        secure : false,
        pathRewrite:{ //把myApi清掉
          '^/myApi' : ''
        }
      }
    }
  }
}
this.axios.post("/myApi"+"/dms/PSSVEZ")
上一篇下一篇

猜你喜欢

热点阅读