位置: 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分钟耗电多少)

    手机最多10分钟锁定怎么修改(手机最多10分钟耗电多少)

  • 微信非对方朋友是什么意思(微信非对方朋友只显示十条朋友圈有时间限制吗)

    微信非对方朋友是什么意思(微信非对方朋友只显示十条朋友圈有时间限制吗)

  • 联想2205硒鼓清零(联想2250硒鼓怎么清零)

    联想2205硒鼓清零(联想2250硒鼓怎么清零)

  • 苹果售后验机怎样收费(苹果手机拿售后验机多少钱)

    苹果售后验机怎样收费(苹果手机拿售后验机多少钱)

  • 华为nova5怎么没有信号灯(为什么华为nova5手机没信号无服务)

    华为nova5怎么没有信号灯(为什么华为nova5手机没信号无服务)

  • 抖音和火山合并了吗(抖音和火山合并后火山实名抖音无法实名)

    抖音和火山合并了吗(抖音和火山合并后火山实名抖音无法实名)

  • 陌陌vip打招呼有上限吗(陌陌打招呼要钱吗)

    陌陌vip打招呼有上限吗(陌陌打招呼要钱吗)

  • 华为手机删除的软件在哪里可以找到记录(华为手机删除的软件怎么找回)

    华为手机删除的软件在哪里可以找到记录(华为手机删除的软件怎么找回)

  • 华为p20红外线功能怎么开启(华为p20红外线功能)

    华为p20红外线功能怎么开启(华为p20红外线功能)

  • ctrl+k是什么快捷键(ctrl k)

    ctrl+k是什么快捷键(ctrl k)

  • 两栏内容怎么设置(两栏内容怎么设置ppt)

    两栏内容怎么设置(两栏内容怎么设置ppt)

  • 12v23a电池是几号(23a 12v的电池)

    12v23a电池是几号(23a 12v的电池)

  • 无法连接到null什么意思(无法连接到打印机)

    无法连接到null什么意思(无法连接到打印机)

  • 惠普打印机每次打印都要按ok(惠普打印机每次都要连无线吗)

    惠普打印机每次打印都要按ok(惠普打印机每次都要连无线吗)

  • 微博能看到具体访客吗(微博能看到具体访客人么)

    微博能看到具体访客吗(微博能看到具体访客人么)

  • 怎么添加底纹颜色(这么添加底纹)

    怎么添加底纹颜色(这么添加底纹)

  • 设置特别关心对方会知道吗(能设置特别关心是不是对方没有删除你)

    设置特别关心对方会知道吗(能设置特别关心是不是对方没有删除你)

  • 苹果手机电筒不亮了怎么办(苹果手机电筒不能打开)

    苹果手机电筒不亮了怎么办(苹果手机电筒不能打开)

  • 手机电池充不进电如何修复(手机电池充不进去电了)

    手机电池充不进电如何修复(手机电池充不进去电了)

  • 淘宝怎么延长收货时间(淘宝怎么延长收货时间还没收到)

    淘宝怎么延长收货时间(淘宝怎么延长收货时间还没收到)

  • 855处理器手机有哪些(855处理器手机大全)

    855处理器手机有哪些(855处理器手机大全)

  • ios12屏幕使用时间耗电吗(ios12屏幕使用时间)

    ios12屏幕使用时间耗电吗(ios12屏幕使用时间)

  • iqoo怎么设置压感按键(iqoo8怎么设置压感)

    iqoo怎么设置压感按键(iqoo8怎么设置压感)

  • 华为平板m5如何分屏(华为平板M5如何升级鸿蒙系统)

    华为平板m5如何分屏(华为平板M5如何升级鸿蒙系统)

  • ios12.4正式版发布时间(苹果发布ios12.5)

    ios12.4正式版发布时间(苹果发布ios12.5)

  • 漫天花雨HTML特效+3D相册(漫天花雨异闻)

    漫天花雨HTML特效+3D相册(漫天花雨异闻)

  • 契税的具体适用税率是多少
  • 收购发票加计扣除
  • 电费为什么计入成本费用
  • 即征即退进项税额为哪些
  • 事业单位人员租房有补助吗
  • 资产的计量属性主要包括哪些
  • 注册资本金印花税什么时候缴纳
  • 冲减预付账款怎么记账
  • 新会计准则最大变化
  • 农产品收购发票图片
  • 吊装费用税率
  • 建筑行业一般纳税人简易征收的范围
  • 无票收入如何做会计凭证
  • 增值税发票的基数是什么
  • 应付利润是会计科目吗
  • 个人所得税加计扣除有哪些项目
  • 公司账户转私账
  • 劳务成本属于费用项目吗
  • 什么情况可以出境
  • 计提职工教育经费计入什么科目
  • 最新w10系统专业版
  • win10无法设置pin码怎么办
  • 会务费如何入账
  • 在建工程人工费计入什么科目
  • 结转已经销售商品成本
  • 预付账款流程
  • 物流运输公司要交税吗
  • PHP:oci_new_collection()的用法_Oracle函数
  • 房地产公司股权收购
  • 企业与政府所签的合同
  • 研发费用如何加计扣除何时申报
  • 员工出差垫钱
  • 开源项目网站
  • vue怎么用bootstrap
  • axios用法示例
  • nyud数据集
  • 待转销销项税额是什么
  • 资产减值损失和资产减值准备
  • 应付票据帐务处理
  • 耕地税税率是多少
  • 什么叫现金流量表举例说明
  • 个体工商户转企业政策
  • 产品淘汰造成的影响
  • 无形资产一般包括哪些权利
  • 所得税汇算清缴补税的会计处理
  • 企业增值税征收范围
  • 民间非营利组织包括哪些单位
  • 损益类科目没有结平是什么意思
  • 母公司代子公司收款,子公司开具发票
  • 车船税缴纳后有发票吗
  • 公司支付的培训费需要交税吗
  • 计提工资申报个税
  • 车辆使用费包括油费吗
  • 电子秤计入什么费用
  • 折现率的选择主要是根据什么来判断
  • 备查账簿的格式和登记方法
  • sql server查询
  • 在苹果电脑上怎么下载软件
  • centos virbr0
  • win10怎么关闭securboot
  • ubuntu16安装vnc
  • win8 侧边栏
  • win8.1 升级
  • win81蓝屏重启故障
  • win8.1怎么用
  • win8系统咋样
  • Tutorial 4: Shaders
  • 手机摇一摇插件
  • jquery选择器的优势有哪些
  • angularjs简介
  • node.js开发实战
  • android圆形按钮
  • jquery的实现原理
  • unity中事件分发系统 EventDispatcher
  • 用python编写的程序称为
  • 天津国税电话
  • 中国烟草一年税收占全国总收入
  • 对外支付税务备案表网上核验
  • 进出口货物的报关时限
  • 无房怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设