uni-app封装请求

把每个不同的功能分了不同的文件夹,相当于不同的层(每个文件夹里可以根据业务在进行细分),请求工具我用的uni-app官方的api(uni.request),在此基础上我进行了简单的二次封装,代码如下:

// uni-app请求封装
export default class Request {
    http (router,data={},method) {
        // 基础地址
        let path = 'http://mock.allhome.com.cn/mock/5c91b03a2add03001024c420/uni';
        // 返回promise
        return new Promise((resolve,reject) => {
            // 请求
            uni.request({
                url: `${path}${router}`,
                data: data,
                method:method,
                success: (res) => {
                    // 将结果抛出
                    resolve(res.data)
                }
            })
        })    
    }
}

这个类接受三个参数,第一个是后端的路由地址,第二个是需要给后端传的实体,第三个是请求方法,该类返回一个Promise,请求成功后将结果抛出,最后在api.js文件中引用并实例化,代码如下:

import Request from '../static/js/request.js';
let request = new Request().http



export default {
    getJobList: function () {
        return request('/jobList',{},'GET')
    }
}

然后就可以在组件里取结果了,代码如下:

import api from '../../api/api.js';

export default {
        data() {
            return {
                listArr: []
            }
        },
        onLoad() {
            // 请求职位列表
            api.getJobList().then(res => {
                this.listArr = res.data
            })
        }
    }

你可能感兴趣的:(uni-app封装请求)