位置: IT常识 - 正文

uniapp封装axios?大可不必那么麻烦。(uniapp封装组件,多了一层)

编辑:rootadmin
uniapp封装axios?大可不必那么麻烦。

推荐整理分享uniapp封装axios?大可不必那么麻烦。(uniapp封装组件,多了一层),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp封装axios,uniapp封装axios,uniapp封装网址,uniapp封装网页,uniapp封装网页,uniapp封装网址,uniapp封装网页,uniapp封装app,内容如对您有帮助,希望把文章链接给更多的朋友!

 最近群里的一个小明同学问 uniapp可以使用axios请求吗?我当时就一愣 反问为什么要使用axios,是 uni.request 不香了吗?

小明:因为axios可以像vue的项目一样,在request里面封装巴拉巴拉一堆。

我:那uni.request不也可以吗

小明:可是我不知道 uni.request怎么封装,可以讲讲然后我教教新来的是实习生嘛。

我:那你听仔细了,我只讲这一次。

1.前期准备

前期准备新建一个uniapp项目,新增node小demo (新手自己看,老手直接跳到后面)

1-1 uniapp项目创建

首先我们先创建我们的uniapp项目

打开我们的hbuilderX

文件/1.项目

 然后起名创建

我们的uniapp就创建好了。

1-2 node接口创建

然后在新建我们的接口

首先打开我们的命令窗口

输入命令 npm init  然后一直回车就可以了

 然后新建一个app.js的文件

 然后安装我们的express

yarn add express

在app.js中写入在终端输入node ./app.js 运行

const express  = require('express')

const app = express();

app.listen(3000, () => {

    console.log(`端口:localhost:3000/`)

})

这里可以看见项目成功运行

 然后在app.js中写入测试数据

app.get('/list', (req, res) => {

    res.send({

        "code": 0,

uniapp封装axios?大可不必那么麻烦。(uniapp封装组件,多了一层)

        "message": "登录成功",

        "data": {

            "token":"vip"

        }

    })

})

然后重新运行项目打开浏览器输入 http://localhost:3001/list

 这样就可以看见我们的测试数据了。到这里我们的后端模拟数据就可以了。项目保持运行状态。

2.uni.request封装

首先我们先创建文件夹utils/request.js

2-1 url_all

在我们的request.js中首先自己定义一个叫 url_all

 我们定义的url_all就是我们接口的地址

const url_all = {'DEV': 'http://localhost:3001', // 开发}

我这里这样定义的原因是我们在实际项目开发过程中我们可能会有我们的本地地址,还会有我们的测试地址,还会有我们的线上地址,免得因为这个地址每次打包发布都需要改变这里的地址。我们这里可以给判断,同学们可以自己思考一下该怎么做。如果有不懂的可以联系我帮助解答。

接着往下。

然后定义一个baseurl获取我们的接口地址到底的线上线下还是测试

这里直接写死

let BASEURL = url_all['DEV']2-2 request

然后下面定义一个加request的函数并导出,有一个参数

export const request =(options={})=>{}

这里我们需要将request这个函数的内部进行一个请求,然后将数据进行导出 ,

这里问题就来了,如果我们失败的请求想要在外部获取我们可以直接导出吗?

那我们这里就可以考虑使用一个Promise来获取成功与否的状态,

这里直接return一个new的Promise

export const request =(options={})=>{return new Promise((resolve,rejects)=>{})}

接下来里面就可以写我们的请求了。到这里为了代码的简洁,我们可以将内容部分抽离成一个函数

handleRequest然后将我们的参数options和状态传过去

export const request =(options={})=>{return new Promise((resolve,rejects)=>{handleRequest(options,resolve,rejects)})}2-3 handleRequest

首先定义好我们的handleRequest接收三个参数然后就可以直接发送请求

首先看看我们的uni.request

uni.request(OBJECT) | uni-app官网

我们直接进行组合数据然后将我们的状态return出去

// 发起请求function handleRequest(options, resolve, reject) {uni.request({url: BASEURL + options.url,method: options.method,data: options.data,success: (response) => {return resolve(response.data)},fail: (fail) => {console.log('fail',fail)return reject(fail);}})}

到这里我们的uni.request其实就已经封装好了,接下里我们来测试一下。

3 api新增

新增文件 api/user.js

import {request} from '@/utils/request.js';export const users =(options)=>{return request({url:'/list',method:'GET',data:options})}

然后找到我们的 pages/index/index.vue 引入测试

<template><view class="content"><image class="logo" src="/static/logo.png"></image><view class="text-area"><text class="title">{{title}}</text></view></view></template><script>import {users} from '@/api/user.js'export default {data() {return {title: 'Hello'}},onLoad() {this.user()},methods: {async user(){console.log('触发了')try{const res = await users()console.log('res',res)}catch(e){console.log('catch',e)//TODO handle the exception}}}}</script><style>.content {display: flex;flex-direction: column;align-items: center;justify-content: center;}.logo {height: 200rpx;width: 200rpx;margin-top: 200rpx;margin-left: auto;margin-right: auto;margin-bottom: 50rpx;}.text-area {display: flex;justify-content: center;}.title {font-size: 36rpx;color: #8f8f94;}</style>

然后就可以拿到数据

 4.结束

看到这里我们的封装uni.request发送请求就已经完成了,是不是跟axios发送请求没有差别呢?

如果你觉得这篇文章对您有帮助就三连支持一下呗。

如果你还有什么问题你可以选择↓↓↓

微信公众号搜索 海海学前端 来了解更多

本文链接地址:https://www.jiuchutong.com/zhishi/294560.html 转载请保留说明!

上一篇:Gumbel-Softmax完全解析

下一篇:VUE3传值相关六种方法(vue传值inject)

  • wps图片怎么去除图片背景色(wps怎样图片转文字)

    wps图片怎么去除图片背景色(wps怎样图片转文字)

  • qq打字背景怎么设置(qq打字的背景怎么弄)

    qq打字背景怎么设置(qq打字的背景怎么弄)

  • 微软账户一直登录失败(微软账户一直登不进去)

    微软账户一直登录失败(微软账户一直登不进去)

  • 做系统按f几进入u盘(做系统开机按f几)

    做系统按f几进入u盘(做系统开机按f几)

  • 两个联通卡可以装在一个手机上吗(两个联通卡可以放一个手机吗)

    两个联通卡可以装在一个手机上吗(两个联通卡可以放一个手机吗)

  • mac桌面文件没删除但不见(mac桌面上文件消失了)

    mac桌面文件没删除但不见(mac桌面上文件消失了)

  • 打电话响9声后weis呼为什么叫失败(打电话响9声后呼叫失败)

    打电话响9声后weis呼为什么叫失败(打电话响9声后呼叫失败)

  • vivo手机拦截短信在哪里找(vivo手机的拦截短信,在哪儿找)

    vivo手机拦截短信在哪里找(vivo手机的拦截短信,在哪儿找)

  • 安卓微信手动删除的聊天记录可以恢复吗(安卓微信手动删除聊天)

    安卓微信手动删除的聊天记录可以恢复吗(安卓微信手动删除聊天)

  • 为什么拍抖音是黑白色(为什么拍抖音视频)

    为什么拍抖音是黑白色(为什么拍抖音视频)

  • 剪映怎么把两个视频同框一起放(剪映怎么把两个视频重叠)

    剪映怎么把两个视频同框一起放(剪映怎么把两个视频重叠)

  • qq显示忙碌是啥意思(qq显示忙碌是啥原因)

    qq显示忙碌是啥意思(qq显示忙碌是啥原因)

  • oppo手表能连苹果手机吗(oppo手表能不能连苹果手机)

    oppo手表能连苹果手机吗(oppo手表能不能连苹果手机)

  • 手机语音怎么听不到声音(手机语音怎么听不清)

    手机语音怎么听不到声音(手机语音怎么听不清)

  • 小米9pro怎么设置一键锁屏(小米9pro怎么设置自动开关机)

    小米9pro怎么设置一键锁屏(小米9pro怎么设置自动开关机)

  • 华为mate30pro是2k屏幕吗(mate30pro屏幕2k)

    华为mate30pro是2k屏幕吗(mate30pro屏幕2k)

  • vivo手机有红外功能吗(vivo手机有红外线遥控功能吗)

    vivo手机有红外功能吗(vivo手机有红外线遥控功能吗)

  • 苹果x基带坏了能修吗(苹果x基带坏了多少钱)

    苹果x基带坏了能修吗(苹果x基带坏了多少钱)

  • oppo手机怎么打开遥控(oppo手机怎么打开OTG连接)

    oppo手机怎么打开遥控(oppo手机怎么打开OTG连接)

  • 荣耀手环3怎么重启(荣耀手环3怎么连接手机蓝牙)

    荣耀手环3怎么重启(荣耀手环3怎么连接手机蓝牙)

  • 百度输入法如何调整键盘高度(百度输入法如何关闭打字声音)

    百度输入法如何调整键盘高度(百度输入法如何关闭打字声音)

  • 经典图像去噪算法概述(图像去噪的原理)

    经典图像去噪算法概述(图像去噪的原理)

  • python爬虫入门教程:爬取网页图片(python爬虫入门教程)

    python爬虫入门教程:爬取网页图片(python爬虫入门教程)

  • 什么是货物运输保险
  • 零售和批发的界定
  • 小规模电子发票一张可以开多少金额
  • 资产几百亿真的有那么多钱吗?
  • 审核通过的红字发票信息表可以撤销吗
  • 无偿赠送商品要纳企业所得税吗
  • 享受企业所得税三免三减半优惠的起始时间
  • 什么情况下可以报警
  • 个税专项扣除需要提供哪些依据
  • 收到费用报销发票怎么做
  • 出口货物保险免税
  • 应付账款明细账模板
  • 摊销土地使用权和专利权会计分录怎么写
  • 公司更名期间账户可以使用吗?
  • 生产企业原材料的订购与运输论文
  • 总公司名义取得的进项发票可以在分公司抵扣吗?
  • 企业拿到产权证后是否还需要缴纳土地使用税呢?
  • 股权成本计算公式rd
  • 小规模的成本票
  • 费用,资产,成本,损失的区别
  • 可转换债券存在的问题
  • 成本分析总结报告
  • 发票分票怎么处理违章
  • 税控盘登不上怎么回事
  • 贴现利息计算器
  • linux怎么挂起
  • 应收账款周转率高说明
  • win10永久激活2021
  • 清理系统所有垃圾
  • php unit
  • dns进程
  • 招待客户住宿的句子
  • 税收返还需要缴纳什么税
  • 计入当期损益的利得分录
  • 微芯片技术
  • php超时限制
  • web应用程序的主要组成部分
  • termux 安装
  • 流动资产金额
  • vue路由详解
  • wrap激活
  • python insert方法
  • 个人所得税专项附加扣除赡养老人
  • 房地产土地使用权计入存货吗
  • 非盈利机构怎么说
  • 海关票怎么做账
  • 什么情况下需要做肠胃镜
  • 在sysservers中找不到服务器
  • 发出商品的增值税
  • 公司租用个人房子凭收据可以入账吗
  • 房租没开票算不算漏税
  • 季度所得税申报表本年累计怎么填
  • 劳务总价包干
  • 公共电话亭设计案例
  • 预提费用在汇算清缴时调整
  • 收到项目资本金怎么入账
  • 租户押金抵房租
  • 其他业务收入的附加税的会计分录
  • 计提是好是坏
  • 缴纳以前年度税金怎么做账
  • 开红字发票必须要收回原发票并作废吗?
  • 发票代码和发票号码是唯一的吗
  • 基金账户托管
  • 给客户的促销费用怎么入账
  • 会计记账中借方和贷方
  • phpmyadmin配置文件
  • sql server的实例
  • sql server使用的是什么逻辑模型
  • ubuntu20.04怎么用
  • 科普知识大全
  • Linux下Dr.com(802.1x)拨号上网完美解决方法(Ubuntu)
  • js动态表格可修改表格数据
  • 代码sd是什么意思
  • python读取文件指定内容
  • js修改内容
  • javascript delete 使用示例代码
  • python如何用
  • bootstrap要学到什么程度
  • 收讫付讫是什么意思
  • 干部任免审批表怎么填写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设