vue3.0封装接口api,并将api挂载到app原型上

将调用后端接口的方法写在接口文件里统一管理,然后在统一挂载在app的原型上,这样使用时就不需要import方法来引入了

首先来封装api接口 api/user.js

import { request } from '@/service/request'
const url = 'userManageApi'
const userApi = {}
// 获取验证码
userApi.getCaptchaApi = (data) => {
  return request({
    url: url + '/users/captcha',
    method: 'get',
    data
  })
}
export default userApi

 将各个api文件集合到一个文件内,然后可以统一挂载在app的原型上

import userApi from './user.js'
export default {
  userApi
}

在main.js中挂载在原型上面,全局都可以使用,但是Vue3无法像Vue2一样直接在原型上放置数据

import api from '@/api/index.js'
const app = createApp(App)
app.config.globalProperties.$api = api // 全局挂载api
app.mount('#app')

使用

import { getCurrentInstance } from 'vue'
const { proxy } = getCurrentInstance()
let res = await proxy.$api.userApi.getCaptchaApi()

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2中封装一个post请求可以通过以下步骤实现: 1. 创建一个名为request.js的文件,用于封装请求方法。 2. 在request.js文件中引入axios库,并创建一个axios实例。 3. 创建一个post方法,用于发送post请求。在post方法中,使用axios实例的post方法发送请求,并传入url和data参数。 4. 在Vue实例中引入request.js文件,并将post方法挂载Vue原型上,以便在组件中使用。 5. 在组件中使用this.$post方法发送post请求。 下面是一个示例代码: ```javascript // request.js import axios from 'axios' const instance = axios.create({ baseURL: 'http://api.example.com', // 设置请求的基础URL timeout: 5000 // 设置请求超时时间 }) export function post(url, data) { return instance.post(url, data) } // main.js import Vue from 'vue' import App from './App.vue' import { post } from './request.js' Vue.prototype.$post = post new Vue({ render: h => h(App), }).$mount('#app') // 组件中的使用示例 export default { methods: { async postData() { try { const response = await this.$post('/api/post', { name: 'John', age: 25 }) console.log(response.data) } catch (error) { console.error(error) } } } } ``` 在上面的示例中,我们创建了一个request.js文件,封装了一个post方法,用于发送post请求。然后在main.js中引入request.js文件,并将post方法挂载Vue原型上,以便在组件中使用。最后,在组件中使用this.$post方法发送post请求。 #### 引用[.reference_title] - *1* *2* *3* [vue axios封装两种post请求方式](https://blog.csdn.net/u012732909/article/details/116200091)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值