美文网首页
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