位置: 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)

  • 微信京东购物我的足迹怎么删除(微信京东购物我的评价在哪里)

    微信京东购物我的足迹怎么删除(微信京东购物我的评价在哪里)

  • 小米10是双卡双待的吗(小米10是双卡双待双5G吗?)

    小米10是双卡双待的吗(小米10是双卡双待双5G吗?)

  • qq动态不显示手机型号怎么回事(qq动态不显示手机型号怎么弄)

    qq动态不显示手机型号怎么回事(qq动态不显示手机型号怎么弄)

  • 剪辑师暂停录制的快捷键是什么(剪辑师显示录制失败让关闭音频是怎么回事)

    剪辑师暂停录制的快捷键是什么(剪辑师显示录制失败让关闭音频是怎么回事)

  • 电脑用户文件夹怎么改名(电脑用户文件夹可以放在d盘吗)

    电脑用户文件夹怎么改名(电脑用户文件夹可以放在d盘吗)

  • qq四个皇冠变成什么(qq4个皇冠后的图片)

    qq四个皇冠变成什么(qq4个皇冠后的图片)

  • 抖音删作品会降权重吗(抖音里删作品会被减少浏览量吗)

    抖音删作品会降权重吗(抖音里删作品会被减少浏览量吗)

  • matepadpro上市时间(matepad pro 发布)

    matepadpro上市时间(matepad pro 发布)

  • 朋友圈内容占内存吗(朋友圈内容占内存空间吗)

    朋友圈内容占内存吗(朋友圈内容占内存空间吗)

  • 华为手机怎么关机重启(华为手机怎么关闭云空间)

    华为手机怎么关机重启(华为手机怎么关闭云空间)

  • 手机号码过期什么意思(手机号码过期是怎么回事,还能用吗)

    手机号码过期什么意思(手机号码过期是怎么回事,还能用吗)

  • 骁龙八核处理器相当于什么(骁龙八核处理器排行)

    骁龙八核处理器相当于什么(骁龙八核处理器排行)

  • 苹果有锁卡贴是什么意思(苹果锁卡贴是什么)

    苹果有锁卡贴是什么意思(苹果锁卡贴是什么)

  • ipad a1432是啥型号(ipad a1432是什么型号)

    ipad a1432是啥型号(ipad a1432是什么型号)

  • 苹果手机开了勿扰模式怎么还能打通(苹果手机开了勿扰模式微信还会响吗)

    苹果手机开了勿扰模式怎么还能打通(苹果手机开了勿扰模式微信还会响吗)

  • 怎么通过微信号查手机号(怎么通过微信号加微信)

    怎么通过微信号查手机号(怎么通过微信号加微信)

  • icp备案查询怎样查(icp备案号在哪儿看)

    icp备案查询怎样查(icp备案号在哪儿看)

  • ipad如何投屏到电视(ipad如何投屏到mac)

    ipad如何投屏到电视(ipad如何投屏到mac)

  • 段后分页是什么意思(段前分页)

    段后分页是什么意思(段前分页)

  • 微信怎么设置密码锁屏(微信怎么设置密码锁不让别人打开)

    微信怎么设置密码锁屏(微信怎么设置密码锁不让别人打开)

  • iphone11支持指纹解锁吗(苹果11支持指纹解锁功能吗?)

    iphone11支持指纹解锁吗(苹果11支持指纹解锁功能吗?)

  • 微信网页版登录不了(企业微信网页版登录)

    微信网页版登录不了(企业微信网页版登录)

  • 如何用css选择器选中某个类的第一个元素(css选择器 菜鸟教程)

    如何用css选择器选中某个类的第一个元素(css选择器 菜鸟教程)

  • 上海浦东森林心形洞穴鸟瞰图,中国 (© Yaorusheng/Getty Images)(浦东森林村)

    上海浦东森林心形洞穴鸟瞰图,中国 (© Yaorusheng/Getty Images)(浦东森林村)

  • 期末未缴税额为负数怎么调整
  • 小规模纳税人税收优惠2023
  • 税控盘退费怎么做会计分录
  • 公司雇佣退休人员怎样扣个税
  • 员工宿舍买热水器计入什么费用
  • 财务报表提示未审计
  • 亏损企业捐赠支出怎么算
  • 做税审报告费如何做分录?
  • 冲减成本怎么做会计分录
  • 现金日记账支出是记借还是贷
  • 发票认证完是不是没开票
  • 公司的私账合法吗
  • 小微企业需要开公户吗
  • 税控盘抵增值税表怎么填
  • 发票税额小数点后面没打印上能用吗
  • 吊车租赁费计入什么会计科目
  • 实收资本印花税最新规定
  • 进口商品买卖的关键环节
  • 计提个人负担的社会保险费分录
  • 暂估应付款借方
  • 小规模纳税人 核定
  • 破产清算应付账款
  • apple取消支付方式
  • 专家咨询费应如何支付
  • 新会计准则2020变化
  • 税款滞纳金会计科目
  • element分页器
  • 政府性基金收入怎么收
  • php静态缓存
  • 纳税人销售免税货物
  • php实现二叉树
  • php限制接口调用次数
  • 非盈利组织固定资产没入帐 怎么调账
  • java幂等性是什么
  • vue全家桶介绍
  • vue3.0动态路由
  • php程序技术
  • 建行对账单回签平啥意思
  • 印花税的征税范围及税率
  • 印花税减半征收减免性质代码
  • python unittest和pytest
  • 应交税费应交增值税的三级科目有哪些
  • 税款要在15号前扣吗
  • 待处理财产损益期末余额在哪方
  • 完全卸载mysql8.0
  • 固定资产会计上与税法上提折旧时间
  • 个体户查账征收个人所得税税率
  • 本年利润的会计分录怎么做
  • 先开票未发货要确认收入吗
  • 企业收取的丢失物品
  • 股东分红的会计分录怎么做
  • 所得税费用会计科目编码
  • 计提了减值准备怎么算折旧额
  • 以现金支付办公用品费440元
  • 入库单的会计分录
  • 怎么看财务报表平不平
  • 行政单位经费支出审批权限
  • sql server安全设置
  • 微软宣布Q3推出MRTKV3工具包
  • windows2008版本区别
  • windows server 2003如何安装
  • 给Windows Server 2008设一个简单密码
  • mac如何修改hosts登录Googledrive
  • mac上播放器
  • win10系统安装搜狗输入法很慢
  • cocos2d解密
  • jquery layout 布局
  • node.js安装教程详细
  • javascript教程chm
  • linux随机数生成1到100
  • jquery中的事件
  • 让图片跳跃起来怎么弄
  • 深入理解计算机系统
  • 轮播图简单实现
  • jquery 通过name获取元素
  • 南京税务局几点上班几点下班
  • 税务个人廉洁谈话记录内容
  • 胡世军简历年龄多大
  • 贵州铜仁苗族自治区
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设