前端Vue uni-app中的通用网络请求封装:common.js的使用

前端Vue uni-app中的通用网络请求封装:common.js的使用

摘要:
在前端开发中,网络请求是必不可少的环节。为了提高开发效率和代码复用性,我们通常会对网络请求进行封装。本文将介绍如何使用common.js文件来封装网络请求,并通过Vue uni-app框架实现通用请求。这种封装方式支持多种请求类型、动态配置请求地址和参数,并且具有请求成功和失败的回调处理。

一、引言

随着前端技术的不断发展,网络请求在应用程序中的作用越来越重要。为了简化开发过程和提高代码的可维护性,我们通常会对网络请求进行封装。在Vue uni-app框架中,我们可以利用common.js文件来创建一个通用的网络请求模块。这个模块可以处理各种类型的请求,并且允许动态配置请求地址和参数。

图片

二、common.js网络请求模块的设计

common.js网络请求模块主要包括以下几个部分:

  1. 请求方法封装:将常用的HTTP方法(如GET、POST等)封装为统一的方法,以便在调用时传入相应的参数。

  2. 请求地址和参数的动态配置:允许开发者根据需要动态配置请求的地址和参数。这样可以更加灵活地应对不同的接口需求。

  3. 请求回调处理:包括成功回调和失败回调,以便在请求成功或失败时执行相应的操作。

三、使用common.js进行网络请求

使用common.js进行网络请求非常简单。首先,你需要引入common.js文件。然后,你可以调用common.js中封装的请求方法,并传入相应的参数。以下是一个简单的示例:

使用方法
复制代码引入common.js文件

    import common from '../../common/common.js'

            requestData(){

                let reqData = {
                    "sv": '200',
                    "tid":'gda',
                    'tv': 'r20230530',
                    'st':'env'
                }

                // 请求数据
                common.sendRequest('POST', common.KTradeid_policy, reqData, (data) => {

                    console.log('成功返回数据 =  ' + JSON.stringify(data));

                    uni.showModal({
                        title:'温馨提示',
                        content:'请求返回数据 = ' + JSON.stringify(data)
                    })

                }, (data) => {

                    console.log('失败返回数据 =  ' + JSON.stringify(data));

                })
            }
HTML代码部分
复制代码<template>
    <view class="content">
        <button style="margin: 26px 60px;" @click="requestData"> 点击发送简单通用请求 </button>

        <view class="text-area">
            <text class="title">{{title}}</text>
        </view>
    </view>
</template>
JS代码 (引入组件 填充数据)
复制代码
<script>
    import common from '../../common/common.js'

    export default {
        data() {
            return {
                title: 'Hello'
            }
        },

        methods: {

            requestData(){

                let reqData = {
                    "sv": '200',
                    "tid":'gda',
                    'tv': 'r20230530',
                    'st':'env'
                }

                // 请求数据
                common.sendRequest('POST', common.KTradeid_policy, reqData, (data) => {

                    console.log('成功返回数据 =  ' + JSON.stringify(data));

                    uni.showModal({
                        title:'温馨提示',
                        content:'请求返回数据 = ' + JSON.stringify(data)
                    })

                }, (data) => {

                    console.log('失败返回数据 =  ' + JSON.stringify(data));

                })
            }

        }
    }
</script>
在这个示例中,我们调用了common.js中的sendRequest方法,并传入了请求类型、请求地址、请求参数以及成功回调和失败回调函数。当请求成功时,成功回调函数将被执行;当请求失败时,失败回调函数将被执行。

四、总结

通过使用common.js文件对网络请求进行封装,我们可以更加方便地处理各种类型的网络请求。这种封装方式不仅提高了代码的复用性,还使得代码更加简洁易读。同时,通过动态配置请求地址和参数,我们可以更加灵活地应对不同的接口需求。在未来的开发中,我们还可以进一步扩展common.js的功能,例如添加请求超时的设置、支持更多的HTTP方法等。

附下载完整组件地址:

https://ext.dcloud.net.cn/plugin?id=12794

  请关注我的微信技术公众号: 前端组件开发

d848d5658a07453c843277846948c608.png

欢迎加入前端组件开发学习交流群,一起学习成长!可关注  “前端组件开发” 公众号后,私信后可申请入群。

图片

uni-app 开发过程中,开发者可能会遇到诸如 `crypto-js`、`jsencrypt` 或 `miniprogram-sm-crypto` 等模块未找到的问题,尤其是在编译到小程序平台(如微信小程序)时。这类问题通常与模块的安装、引入路径或兼容性有关。 ### 1. `crypto-js` 文件查找失败 在 uni-app使用 `crypto-js` 时,若出现“文件查找失败:`crypto-js`”的错误,通常是因为该模块未正确安装或路径引用错误。解决方法如下: - 在项目根目录下通过 npm 安装 `crypto-js`: ```bash npm install crypto-js ``` - 在需要使用的文件中正确引入: ```javascript import CryptoJS from &#39;crypto-js&#39; ``` 如果仍然无法识别路径,可以尝试使用相对路径引入,例如: ```javascript import CryptoJS from &#39;../../../node_modules/crypto-js/crypto-js.js&#39; ``` 该模块的安装位置应为项目根目录下的 `/node_modules/crypto-js/` 路径中 [^3]。 ### 2. `jsencrypt` 模块未找到或报错 `jsencrypt` 是用于 RSA 加密的常用库,在 uni-app使用时,H5 端通常没有问题,但在微信小程序等平台可能会出现模块未找到或兼容性错误。 - 安装方法: ```bash npm install jsencrypt ``` - 引入方式: ```javascript import JSEncrypt from &#39;jsencrypt&#39; ``` 若在小程序中仍报错,可能需要手动将 `jsencrypt` 的源码文件(如 `lib/jsencrypt.js`)复制到项目中的 `common` 或 `utils` 目录中,并通过相对路径引入: ```javascript import JSEncrypt from &#39;@/common/jsencrypt.js&#39; ``` 这种方式可绕过 NPM 模块解析问题,确保模块被正确打包 [^2]。 ### 3. `miniprogram-sm-crypto` 模块未找到 `miniprogram-sm-crypto` 是专为小程序优化的国密(SM2/SM4)加密库,主要用于微信小程序环境。若在 uni-app使用时出现模块未找到的问题,可能是因为该模块未被正确安装或仅适用于特定平台。 - 安装方式: ```bash npm install miniprogram-sm-crypto ``` - 引入和使用: ```javascript const smCrypto = require(&#39;miniprogram-sm-crypto&#39;) const sm2 = smCrypto.sm2 ``` 注意:该模块仅适用于微信小程序,若在 H5 或其他平台运行时会报错。建议使用条件编译进行适配: ```javascript #ifdef MP-WEIXIN const smCrypto = require(&#39;miniprogram-sm-crypto&#39;) #endif ``` ### 4. 其他通用解决建议 - **检查 `manifest.json` 中的源码视图依赖配置**:确保 `package.json` 中已正确声明依赖,且构建系统能够识别这些模块。 - **清理缓存并重新安装依赖**: ```bash npm cache clean --force rm -rf node_modules npm install ``` - **确认是否为跨平台兼容性问题**:uni-app 对 NPM 模块的支持程度在不同平台下存在差异,尤其是涉及原生 Node.js API 的模块。对于此类模块,建议寻找小程序专用替代库或进行适配封装---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端组件开发

你的钟意将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值