UniApp:uniapp的接口封装(二)

  1. 新建 https 文件夹存放以下文件
    在这里插入图片描述

    • baseUrl.js
    • apis.js
    • request.js
    • http.js
  2. baseUrl.js

    //存放主站域名
    const BASE_URL = 'http://www.ceshi.com'
    
    export {
    	BASE_URL
    }
    
  3. apis.js

    //导入API地址
    import { BASE_URL } from '@/https/baseUrl.js'
    
    //常用API
    class Apis {
    	API_URL = BASE_URL
    	//获取用户信息
    	getUserInfo = `${this.API_URL}/userInfo/api`
    }
    
    const apis = new Apis()  //细分版块
    
    export {
    	apis
    }
    
  4. request.js

    //请求头
    const header = {
    	'Content-type': 'Application/json',
    	'Token':uni.getStorageSync('token').AccessToken
    }
    
    //生成请求方法
    const request = (url,data,method) => {
    	return new Promise((resolve, reject) => {
    	    uni.request({
    	        url: url,
    	        data: data,
    	        header: header,
    	        method: method,
    	        success: res => {
    	            resolve(res)
    	        },
    	        fail: err => {
    	            reject(err);
    	        }
    	    })
    	})
    }
    
    //创建HTTP对象,分化请求
    class Http {
    	get = function(url,data){
    		return request(url,data,'GET')
    	}
    	post = function(url,data){
    		return request(url,data,'POST')
    	}
    }
    
    //实例化对象
    const http = new Http()
    
    //导出http对象
    export{
    	http
    }
    
  5. http.js

    import { http } from '@/https/request.js'
    import { apis } from '@/https/apis.js'
    
    // 获取用户信息
    const getUserInfo = (data) => {
        return http.get(apis.getUserInfo, data)
    }
    
    
    //进行引入
    export default{
    	getUserInfo 
    }
    
  6. main.js

    //导入全局请求
    import http from '@/https/http.js';
    Vue.prototype.$http = http;
    
  7. 使用

    export default {
        data() {
            return {
               
            }
        },
        onLoad() {
            this.getUserInfo();
        },
        methods: {
            getUserInfo(){
                this.$http.getUserInfo().then(res => {
                    console.log(res.data);
                });
            }
        }
    }
    
UniApp中使用Vue3进行接口请求的封装可以按照以下步骤进行。 1. 创建一个文件,例如`api.js`,用于定义接口请求相关的函数。 ```javascript import { createApp } from 'vue' import { reactive } from 'vue' const app = createApp({}) const state = reactive({ // 定义一些全局的请求相关配置,如baseURL等 baseURL: 'https://api.example.com', timeout: 10000, }) // 定义接口请求函数 export const request = async (config) => { config.url = state.baseURL + config.url config.timeout = state.timeout try { const response = await app.config.globalProperties.$http(config) return response.data } catch (error) { throw new Error(error) } } ``` 2. 在`main.js`中进行拦截器和全局挂载的配置。 ```javascript import { createApp } from 'vue' import App from './App.vue' const app = createApp(App) // 在app.config.globalProperties上挂载$http方法,用于发送请求 app.config.globalProperties.$http = (config) => { // 在这里可以使用uni.request或者其他库进行实际的请求发送 // 返回一个Promise对象 } app.mount('#app') ``` 3. 在需要使用接口的地方,引入`api.js`文件并调用接口请求函数。 ```javascript import { request } from './api.js' // 调用接口请求函数 request({ url: '/example', method: 'get', }).then((response) => { console.log(response) }).catch((error) => { console.error(error) }) ``` 通过以上步骤,你可以在UniApp中使用Vue3进行接口请求的封装。当然,你可以根据具体的需求进行更多的定制和封装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值