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

  • 抖音搜索用户不进主页会被发现吗(抖音搜索用户不进主页看视频会有记录吗)

    抖音搜索用户不进主页会被发现吗(抖音搜索用户不进主页看视频会有记录吗)

  • 苹果日历没有显示节假日怎么设置(苹果日历没有显示生日)

    苹果日历没有显示节假日怎么设置(苹果日历没有显示生日)

  • 快手全部取关了怎么还显示有几个(快手全部取关了怎么取消)

    快手全部取关了怎么还显示有几个(快手全部取关了怎么取消)

  • 秘密级计算机口令长度应不少于几位(秘密级计算机口令长度不应少于多少位)

    秘密级计算机口令长度应不少于几位(秘密级计算机口令长度不应少于多少位)

  • 最后一页空白页怎么删除(最后一页空白页怎么删除不了)

    最后一页空白页怎么删除(最后一页空白页怎么删除不了)

  • 高通710和骁龙710区别(高通710和骁龙765g哪个好)

    高通710和骁龙710区别(高通710和骁龙765g哪个好)

  • 宽带500兆网速是多少(宽带500兆网速是指的流量吗?)

    宽带500兆网速是多少(宽带500兆网速是指的流量吗?)

  • rne al00是什么型号(rne一al00是什么型号)

    rne al00是什么型号(rne一al00是什么型号)

  • 微信钱包记录删除可以恢复吗(微信钱记录删除怎么恢复)

    微信钱包记录删除可以恢复吗(微信钱记录删除怎么恢复)

  • sht-w09是什么型号(sht-w09参数)

    sht-w09是什么型号(sht-w09参数)

  • 苹果手机人脸识别一直转圈圈(苹果手机人脸识别突然不能用了)

    苹果手机人脸识别一直转圈圈(苹果手机人脸识别突然不能用了)

  • 手机注销了微信号还能用吗(手机注销了微信号密码忘了怎么办)

    手机注销了微信号还能用吗(手机注销了微信号密码忘了怎么办)

  • 微信视频模糊怎么调整(微信视频模糊怎么设置清晰)

    微信视频模糊怎么调整(微信视频模糊怎么设置清晰)

  • a2097是什么版本(a2099是什么版本)

    a2097是什么版本(a2099是什么版本)

  • 为什么微信语音按不了接听(为什么微信语音通话自动挂断)

    为什么微信语音按不了接听(为什么微信语音通话自动挂断)

  • 微信视频一小时多少流量(微信视频一小时大概消耗多少流量)

    微信视频一小时多少流量(微信视频一小时大概消耗多少流量)

  • 京东如何删除商品评价(京东商家如何删除订单)

    京东如何删除商品评价(京东商家如何删除订单)

  • hashmap底层原理(hashmap底层实现原理和源码分析)

    hashmap底层原理(hashmap底层实现原理和源码分析)

  • airpods怎么改不了名字(airpods怎么设置)

    airpods怎么改不了名字(airpods怎么设置)

  • wps的格式菜单在哪里(wps2019格式选项在哪里)

    wps的格式菜单在哪里(wps2019格式选项在哪里)

  • 87键盘与104键的区别(87键盘与104键的长度)

    87键盘与104键的区别(87键盘与104键的长度)

  • 手相算命图解大全(手相算命图解大全女)

    手相算命图解大全(手相算命图解大全女)

  • 程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)(程序人是什么意思)

    程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)(程序人是什么意思)

  • 房地产企业环保税什么时候申报
  • 汇算清缴计提所得税在哪个月
  • 工程奖励金算收入吗
  • 红字发票和蓝字一样吗
  • 缴纳税金属于什么会计分录
  • 可供出售金融资产和交易性金融资产
  • 具备什么条件的土地可以开发
  • 结算业务申请书和转账支票区别
  • 代扣代缴车船税手续费比例
  • 公司注销留抵税额税法规定
  • 出口退税代理费用大概多少
  • 2018水利基金税率是多少?怎么算
  • 母公司向分公司收取管理费
  • 固定资产折旧计提完毕怎么处理
  • 虚开增值税专用发票案例
  • 发票勾选保存后不提交了能留到下月抵扣吗?
  • 自己生产的水泥用于建造厂房
  • 企业信息公示社保信息怎么填,公司没有交
  • 任务栏图标重叠一起
  • 暂估材料太多怎么办
  • 自查以前年度补税需调帐吗
  • 公司退股需要交什么税
  • 个税的适用税率有哪些
  • 异常发票怎么处理
  • 交易性金融资产属于什么科目
  • php中??
  • 储金会是干什么的
  • 发票交付在哪里
  • 退休后工作单位填什么内容
  • thinkphp 登录功能
  • 房地产企业利润
  • 奥卡拉国家森林公园
  • 增值税专用发票怎么开
  • 业务招待费计入什么会计科目
  • yolov5m
  • adas数据集
  • 旅行社差额征税税率是多少
  • php session跨域共享
  • 单元测试的测试工具
  • javascrapt
  • 加工取得的存货成本会计分录
  • 收到以前年度增值税退税账务处理怎么做账
  • 保险合同包含什么
  • 利息收入填在汇算清缴哪里
  • 银行转账费用多少钱
  • 公司债券分为
  • 会计丁字记账法
  • 企业销售退回的论文
  • 小规模纳税人超过30万是全额纳税吗
  • 什么是资产减值转回
  • 明细账设置是什么意思
  • 房地产会计核算科目
  • sqlserver数据库和mysql区别
  • centos rpm命令
  • windows vista
  • 在window中
  • mac uuid查询
  • linux sed-i
  • u盘安装linux系统遇到的问题
  • 进程mmc.exe
  • win1020h2镜像
  • linux如何设置用户自己的工作环境
  • unity怎么念
  • 详解怎样利用双色球密码选号
  • nodejs word
  • Node.js中的核心模块包括哪些内容?
  • unity的协程
  • javascript中有哪些数据类型
  • Node.js+ES6+dropload.js实现移动端下拉加载实例
  • 如何使用wordpress
  • jquery页面
  • js怎么设置图片大小
  • jQuery+ajax简单实现文件上传的方法
  • 湖北税务网上登录
  • 文化服务包括哪些专业
  • 青海税务app
  • 江苏预包装食品备案网上流程
  • 海口社保一个月多少钱
  • 积极配合税务局工作
  • 税务登录 河北省地方税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设