位置: IT常识 - 正文

vue3项目实战中的接口调用方法(一)async/await用法 对axios二次封装 实现异步请求(vue3项目搭建)

编辑:rootadmin
vue3项目实战中的接口调用方法(一)async/await用法 对axios二次封装 实现异步请求 vue3 async和await联合调用接口 🔥一文搞定🔥点击进入vue专栏🔥async/await定义async/await用法🔥async/await的基本用法async/await的使用场景async/await实战🔥🔥处理一个异步请求处理多个异步请求summary🔥点击进入vue专栏🔥

推荐整理分享vue3项目实战中的接口调用方法(一)async/await用法 对axios二次封装 实现异步请求(vue3项目搭建),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3项目搭建,vue3最佳实践,vue3.0实例,vue3最佳实践,vue3jsx,vue3项目案例,vue实战项目例子,vue实战项目例子,内容如对您有帮助,希望把文章链接给更多的朋友!

上期推文中讲述了vue3项目实战中接口调用的相关知识点,介绍了调用接口的过程和简要方法。🔥点击复习vue3项目实战中接口的调用🔥 从本期文章开始将会不定时更新 vue3项目实战中接口调用的三大方法。👏👏👏本期文章将重点介绍vue3的 async和await实现异步请求接口 (👏👏👏欢迎大佬们多多指教!)

async/await定义

在进行实际开发时会遇到异步请求的问题,这时候我们异步请求的存在就非常具有合理性了。

async 是异步的意思,而 await 是等待的意思,await 用于等待一个异步任务执行完成的结果。

🔥1.async/await 是一种编写异步代码的新方法(以前是采用回调和 promise)。 2. async/await 是建立在 promise 的基础上。 3. async/await 像 promise 一样,也是非阻塞的。 🔥4. async/await 让异步代码看起来、表现起来更像同步代码。

async/await用法🔥async/await的基本用法async/await是ES7引入的新语法,可以更加方便的进行异步操作async关键词用于函数上(async函数的返回值是Promise实例对象)await关键子用于async函数当中(await可以得到异步的结果)

👇👇 基本格式 如下:

async function queryData(id) {const ret = await axios.get('/data');return ret;}queryData.then(ret=>{console.log(ret)})

示例1(详细版含注解): 源码:

const initGetList = async () => { // 函解构用async和await包裹 const {data:res} = await getList(data) // 获取接口调用函数getList中的值data 其中data是表单里的数据 // 对data进行解构赋值 取出请求的结果res console.log(res) // 控制台打印结果 => 请求成功 code为200 data.list = res.data // 将请求结果的data值赋给data.list 方便表格table与之数据双向绑定}initGetList() //调用函数

这是一个请求后端接口,并将数据返回到后台管理的table表格上的例子。

vue3项目实战中的接口调用方法(一)async/await用法 对axios二次封装 实现异步请求(vue3项目搭建)

template部分代码:(UI组件库使用的是Ant Design Vue)

<a-table :data-source="data.list" :columns="columns" style="width:100%"></a-table>

示例2:

// 配置请求的基准URL地址axios.defaults.baseURL = 'http:localhost:3000'; //axios请求接口 axios.get('adata').then(function(ret){ console.log(ret.data) }) //async请求接口 await后面是Promise实例对象 async function queryData() { var ret = await axios.get('adata'); // console.log(ret.data) return ret.data; } queryData().then(function (data) { // 赋值过程 console.log(data) })//服务器端的接口app.get('/adata', (req, res) => { res.send('Hello axios!')})async/await的使用场景

实际开发中,肯定会遇到关于发送请求获取数据的问题。例如:如果你遇到了 等第一个请求返回数据完,再执行第二个请求(可能第二个请求要传的参数就是第一个请求接口返回的数据) 【同步请求】这个问题,该怎么去处理呢?由于我们在不使用异步请求的情况下,默认发送多个请求是同步执行的,就会导致我们也不知道到底是哪个接口优先被执行!!!所以,我们必须要学会使用async/await实现异步请求!!!

async/await实战🔥🔥处理一个异步请求

验证登录:

源码:

// 验证登录// async 和 await 包裹需要请求的对象的值 相当于对axios的一个二次封装const handleFinish = async (value: any) => { // 表单输入完毕后点登录调用handleFinish函数 // async包裹handleFinish函数的参数value 传参 console.log(value) const {data:res} = await userLoginApi(value) // 对data解构赋值 取出请求结果res data是请求接口中存放表单数据的变量 // 先从请求接口的函数userLoginApi中获取存入的表单数据value 然后用await包裹 赋值给请求结果res console.log(res) if(res.code === 20001){ // 这里的20001来自浏览器中 要看清楚是成功的值还是失败的值 console.log('login successfully') message.success('login succesfully') // 数据验证通过弹出跳转成功提示框 // 用对话存储的方法set(送进去)一个token window.sessionStorage.setItem('token',res.data.tokenValue) // token的位置从浏览器控制台中可以得到 router.push("/home") // 数据验证成功后跳转页面 } else { message.error('请求失败 请重新输入') // 数据验证不成功则弹出错误提示框 console.log('error') }};

表格数据:(更多见示例一)

处理多个异步请求第一个异步请求的结果可以作为第二个异步请求内部的参数,进行判断等数据操作。形成链式关系

示例1:

// 配置请求的基准URL地址axios.defaults.baseURL = 'http://localhost:3000';//async请求接口 async function queryData() { var info = await axios.get('async1'); //axios传递给服务器/async2接口的info.data参数,用于接口内部判断 //传参格式:[ '地址?属性名=属性值' ]or [ ' 地址?对象= ' + '对象.属性名'] var ret = await axios.get('async2?info=' + info.data); return ret.data; } queryData().then(function(data){ console.log(data) })//服务器端的接口 app.get('/async1', (req, res) => { res.send('hello')})app.get('/async2', (req, res) => { if (req.query.info == 'hello') { res.send('async1的结果确实是hello') } else { res.send('error') }})

示例2:

const datas = async ()=> { await request.selectPies(Route.path.split('/')[3]).then(res=>{ states.ids = res.objconsole.log(res) }) //查询发帖子用户信息 await request.selectUsers(states.ids).then(res=>{ console.log(res.obj) })}datas()

这里是在vue3 setup语法糖中使用异步请求,从代码看出,第二个接口要使用第一个接口返回的数据,因此使用了异步请求。

summary

在前后端分离的开发模式下,需要访问后端接口,我们必须要懂得什么是异步请求——给接口的访问加上了顺序,防止它们无厘头的不受顺序限制发送请求!

以上就是vue3项目实战中接口调用方法——async/await用法的详细内容。后期会对剩余两种接口调用方法 fetch axios不定期更新!!

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

上一篇:前端面试题(前端面试题目100及最佳答案)

下一篇:如何让img标签在父元素中自适应宽度或者高度,按比例显示(img标签怎么写)

  • 拼多多怎么查看消费总额(拼多多怎么查看好友的购买记录)

    拼多多怎么查看消费总额(拼多多怎么查看好友的购买记录)

  • 小米手机通话转移功能怎么设置(小米手机通话转文字)

    小米手机通话转移功能怎么设置(小米手机通话转文字)

  • 抖音怎么截屏不带字(抖音截屏不了)

    抖音怎么截屏不带字(抖音截屏不了)

  • 微博任务红包怎么没了(微博任务红包怎么打开)

    微博任务红包怎么没了(微博任务红包怎么打开)

  • 微信群的作用及好处(微信群的作用及目的)

    微信群的作用及好处(微信群的作用及目的)

  • freebuds3充电盒怎么知道充满了(freebuds3充电盒没反应)

    freebuds3充电盒怎么知道充满了(freebuds3充电盒没反应)

  • 电表脉冲灯不亮也没电(电表脉冲灯不亮什么原因)

    电表脉冲灯不亮也没电(电表脉冲灯不亮什么原因)

  • 键盘确定键是哪一个(键盘确定键坏了怎么办)

    键盘确定键是哪一个(键盘确定键坏了怎么办)

  • 魅族17上市时间(魅族20价格)

    魅族17上市时间(魅族20价格)

  • 苹果手机语音声音太小了 什么原因啊(苹果手机语音声音)

    苹果手机语音声音太小了 什么原因啊(苹果手机语音声音)

  • wp8版是什么意思(wp8.1和wp10)

    wp8版是什么意思(wp8.1和wp10)

  • 不认识的人加亲情号有风险吗(不认识的人加微信怎么办)

    不认识的人加亲情号有风险吗(不认识的人加微信怎么办)

  • qq可能认识的人是相互的吗(qq可能认识的人怎么刷新)

    qq可能认识的人是相互的吗(qq可能认识的人怎么刷新)

  • 为什么打qq电话不能开游戏麦(为什么打qq电话会黑屏)

    为什么打qq电话不能开游戏麦(为什么打qq电话会黑屏)

  • ipad10.2英寸屏幕是多大(ipad10.2英寸屏幕多少厘米)

    ipad10.2英寸屏幕是多大(ipad10.2英寸屏幕多少厘米)

  • 为什么有的人显示正在输入(为什么有的人显高)

    为什么有的人显示正在输入(为什么有的人显高)

  • 户户通怎么授权(戸户通怎么授权)

    户户通怎么授权(戸户通怎么授权)

  • 简述微机的主要性能指标(简述微机的主要性能指标及其含义)

    简述微机的主要性能指标(简述微机的主要性能指标及其含义)

  • 豆瓣小组怎么取消审核(豆瓣小组怎么取消封禁)

    豆瓣小组怎么取消审核(豆瓣小组怎么取消封禁)

  • 图片蒙版什么意思(蒙版是什么)

    图片蒙版什么意思(蒙版是什么)

  • 只能安装到gpt磁盘(只能安装到gpt磁盘吗)

    只能安装到gpt磁盘(只能安装到gpt磁盘吗)

  • 电脑打字不显示选字框解决方法(电脑打字不显示文字选项)

    电脑打字不显示选字框解决方法(电脑打字不显示文字选项)

  • 固态硬盘什么牌子好?2018一月固态硬盘推荐(固态硬盘什么牌子性价比高)

    固态硬盘什么牌子好?2018一月固态硬盘推荐(固态硬盘什么牌子性价比高)

  • 整理各种Vue项目在IE浏览器白屏报错 SCRIPT1002:语法错误(vue项目中技巧知识点)

    整理各种Vue项目在IE浏览器白屏报错 SCRIPT1002:语法错误(vue项目中技巧知识点)

  • 一天十道Java面试题----第一天(面向对象-------》ArrayList和LinkedList)(java一天速成)

    一天十道Java面试题----第一天(面向对象-------》ArrayList和LinkedList)(java一天速成)

  • 平均税额怎么算
  • 坏账准备怎么做T型账户
  • 行政单位基建管理办法
  • 承兑可以要吗
  • 未出资到位的股东
  • 所有者权益股东权益
  • 没有工会 还需要交钱吗
  • 没有进出口经营权
  • 按应收账款余额计提坏账准备的会计分录
  • 待抵扣进项税额冲回
  • 公司库存现金如何存回银行
  • 增值税发票校验码是什么意思
  • 零申报的企业
  • 企业出售固定资产取得的净收益应列入的利润表项目是
  • 资产处置损益借贷方向表示什么
  • 公积金提前扣下个月
  • 废品损失账户借方反映
  • win11自带照片查看器
  • 工地包工工程款一般怎么结
  • 增值税纳税义务人
  • 违约金开什么票据
  • 第4章 数据处理思维导图
  • 购买轿车增值税可抵扣吗?
  • vue前端页面设计
  • 如何补办二手车牌照
  • 不得税前扣除的项目有哪些
  • 豁免债权如何做账
  • 会计核算的职能主要是从什么方面综合反映
  • 面试官:一千万是真的吗
  • 电维护费多少合法
  • 如何快速搭建前端界面
  • php注册和登录界面
  • 开多少票就要进多少钱吗
  • 在汇算清缴前未支付的年终奖不可以在所得税前扣除
  • 关于低值易耗品的说法中不正确的是
  • 商贸公司库存怎么盘点准确一点儿
  • 拖欠工程款利息的司法解释
  • 老板出差餐费费用怎么处理
  • css中字符间距怎么设置
  • mockito mock方法
  • 零申报年报
  • 小企业会计准则和一般企业会计准则的区别
  • 核定扣除投入产品怎么算
  • 差旅费津贴属于应付职工薪酬吗
  • 收到质量赔款涉税处理
  • 收到的加盟费要交税吗
  • 开一家公司的具体步骤
  • 单位集体旅游算工资吗
  • 小企业营业外支出的内容
  • 应收账款入账价值包括现金折扣吗
  • 出售固定资产怎样报增值税申报表
  • 印花税需要计提吗2023
  • 厂房的使用寿命
  • 失业保险费返还怎么做账
  • 会计凭证负数金额怎么算
  • 如何理解股权激励
  • 行政单位经费支出审批权限
  • linux防御
  • windows7桌面出现一个窗口删除不了
  • win8应用商店打开很慢怎么办
  • windows 7光盘
  • win10红石版
  • cocos2djs
  • 菜单按钮是什么
  • js一维数组转树结构
  • 脚本控制三行三列怎么写
  • Unity3D游戏开发培训课程大纲
  • shell定时删除指定目录下的文件夹
  • js动态生成html页面
  • JavaScript小技巧整理篇(非常全)
  • 用jquery
  • javascript keyup
  • jquery中validate
  • 个体工商户税务申报怎么操作流程
  • 亿企赢工作前景怎么样
  • 股权转让查账重点查什么
  • 个体工商户两处所得,如何减半个税
  • 税务开通需要什么东西
  • 国家税务局查询发票
  • 单位固定资产转到个人名下要交税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设