vue3引入并封装vue-axios

2 篇文章 0 订阅

vue-axios和axios区别:

  1. axios是基于promise的HTTP库,可以使用在浏览器和node.js中,它不是vue的第三方插件
  2. axios使用的时候不能像vue的插件(如:Vue-Router、VueX等)通过Vue.use()安装插件,需要在原型上进行绑定使用:Vue.prototype.$http = axios;
  3. vue-axios是axios集成到Vue.js的小包装器,可以像插件一样安装使用:Vue.use(VueAxios, axios);
  4. 使用 Vue 的插件写法,更符合 Vue 整体生态环境。而直接写原型链,感觉有些粗暴了,除非是很底层的实现,否则不太推荐这样写了。因此,我们更推荐使用vue-axios插件的方式,不太推荐是直接使用axios的方式。
//1、安装
npm i axios vue-axios --save
//2、引入
import axios from 'axios'
import vueAxios from 'vue-axios'
const app=createApp(App);
app.use(vueAxios,axios)
//3、使用方法
//方法1
Vue.axios.get(api).then((response) => {
  console.log(response.data)
})
//方式2
this.axios.get(api).then((response) => {
  console.log(response.data)
})
//方式3
this.$http.get(api).then((response) => {
  console.log(response.data)
})
4、拦截
使用vue-axios-plugin插件
//(1)安装
npm install --save vue-axios-plugin
//(2)引入
import vueAxiosPlugin from 'vue-axios-plugin'

在引入的时候报错了

无法找到模块“vue-axios-plugin”的声明文件。“D:/01-project/01-rd/npc-vue-dbfw/dbfw-dj/node_modules/vue-axios-plugin/dist/vue-axios-plugin.umd.js”隐式拥有 "any" 类型。
  尝试使用 `npm i --save-dev @types/vue-axios-plugin` (如果存在),或者添加一个包含 `declare module 'vue-axios-plugin';` 的新声明(.d.ts)文件

我是在shims-vue.d.ts中引入 `declare module 'vue-axios-plugin’然后就不报错了

.d.ts 为了让已有的js做类型声明,declare关键字,用于类型声明

//(3)拦截
app.use(vueAxiosPlugin,{
    // 第二步:请求拦截处理
  reqHandleFunc: (config:any) => config,
  reqErrorFunc: (error:any) => Promise.reject(error),
  // 响应拦截处理
  resHandleFunc: (response:any) => response,
  resErrorFunc: (error:any) => Promise.reject(error)
})
//(4)使用
#在 Vue 组件上添加了 $http 属性, 它默认提供 get 和 post 方法,使用如下
this.$http.get(url, data, options).then((response) => {
  console.log(response)
})
this.$http.post(url, data, options).then((response) => {
  console.log(response)
})
#你也可以通过 this.$axios 来使用 axios 所有的 api 方法,比如:
this.$axios.get(url, data, options).then((response) => {
  console.log(response)
})
 
this.$axios.post(url, data, options).then((response) => {
  console.log(response)
})
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值