美文网首页
uniapp中对网络请求的简单封装

uniapp中对网络请求的简单封装

作者: 阿毛呀_ | 来源:发表于2021-12-27 14:10 被阅读0次

最近刚开始写uniapp,涉及到了网络请求这一块儿。按照以前写小程序、APP的经验,肯定也会封装一个网络请求的工具,方便后续的使用。然后看了很多相关的文章,综合整理一下。

1:对uni.request的简单封装

首先新建一个用于请求的js文件--networkRequest.js

function netRequest(url, data = {}, method) {
    data["deviceType"] = 3; //这里可以加入一些固定不变的数据
    return new Promise(function(resolve, reject) {
        uni.request({
            url: url,
            method: method || "POST",
            data: data,
            header: {
                'content-type': 'application/json',
            },
            success(res) {
                console.log('network---success', res);
                 //自己和后台的约定code
                if (res.statusCode && res.statusCode == 200) {
                    resolve(res.data);
                }
            },
            fail: function(err) {
                console.log('network---fail', err);
                reject(err);
            }
        })
    });
}

module.exports = {
    netRequest
}

或者是直接将方法export,然后只传递一个字典

export const netRequest2 = (options) => {
    options.data["deviceType"] = 3;
    return new Promise((resolve , reject) => {
        uni.request({
            url: options.url,
            method: options.method || "POST",
            data:options.data,
            header: {
                'Content-Type': 'application/json',
            },
            success(res) {
                console.log('network---success', res);
                if (res.statusCode && res.statusCode == 200) {
                    resolve(res.data);
                }
            },
            fail: function(err) {
                console.log('network---fail', err);
                reject(err);
            }
        })
    });
}

2:将方法挂载到全局

在网上看了下,将方法挂载全局大致分为两种。一种是导入networkRequest里面对应export的方法

//导入方法
import {netRequest2 } from './utils/networkRequest.js'
//挂载Vue上
Vue.prototype.$netRequest2 = netRequest2

一种是导入networkRequest.js文件。

//导入js文件
import networkRequest from './utils/networkRequest.js'
//挂载Vue上
Vue.prototype.networkRequest = networkRequest

3:在适当的地方引用

因为挂载到了全局,所以在对应页面的script里面调用就行了
1:如果是挂载export的方法,调用

var reqData = {
                url: "http:example-url",
                data: {"string":"string-----"}
              }
this.$netRequest2(reqData).then(res => {
            console.log('返回',res);
});

2:如果挂载的是js文件,调用方式

var url = "http:example-url";
var data = {"string": "string-------"};
this.networkRequest.netRequest(url,data).then(res => {
    console.log('--------------',res)
});

如果接口比较多,为了方便管理,还可以单独创建一个请求方法的js文件,将所有的请求api的方法全部放在里面,然后挂载到全局,方便你自己在其他地方使用。

相关文章

网友评论

      本文标题:uniapp中对网络请求的简单封装

      本文链接:https://www.haomeiwen.com/subject/lfhyqrtx.html