位置: 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标签怎么写)

  • 企业所得税和增值税重复收税了吗
  • 刚成立的公司好不好
  • 跨年度退货可以开红字发票吗
  • 车船税不交怎么办
  • 残值要不要做分录
  • 季报现金流量表是必报表吗
  • 赊销固定资产会计科目
  • 冲账其他应付款
  • 可供出售金融资产改为什么科目
  • 印刷品生产需要生产许可证吗?
  • 商用住房出租需要交什么税?
  • 每月发放奖金的会计分录
  • 园林设计属于什么
  • 汇算清缴退税现金流量表
  • 总包分包差额征税是什么意思
  • 应交税费的期初余额是借还是贷
  • 新办企业的开办费用应计入( )
  • 有未分配利润就有盈余返还吗?
  • 小规模纳税人三万以下免税
  • 1697509310
  • mac如何登陆两个微信
  • Win11 Dev Build 22000.65开发预览版推送(附更新修复已知问题汇总)
  • 红字发票记账如何记账
  • 企业收到政府补助时,无需开发票,双方根据银行电汇单
  • 企业去银行办理贷款需要什么
  • 公司租房可以抵扣个人所得税吗
  • 宽带连接错误651是什么意思
  • 天猫魔搭
  • 给客户赠送的礼物叫什么
  • php变量格式说法错误的是
  • 消费税的会计分录怎么写
  • 印花税怎么核算的
  • 预售商品房转让合同
  • 贵的u盘和便宜的有什么区别
  • 行政事业单位招待费比例
  • 如何使用php写一个网页
  • php怎么将数据库中的数据显示出来
  • 其他应付款清账
  • react生命周期分为两类
  • python获取值对应的键
  • 培训机构账务处理
  • windows安装步骤总结
  • 以前年度租赁收入如何处理
  • PostgreSQL教程(十四):数据库维护
  • 公司开发新产品时,由管理层任命的
  • 直接转销法还允许使用吗
  • 未分配利润可以弥补亏损吗
  • 小规模纳税人未开票收入如何申报增值税
  • 零售金银首饰是否缴纳消费税
  • 股东捐赠给企业怎么做账
  • 什么是无形资产包括哪些
  • 待抵扣进项税额是什么情况下用的
  • 当月发票未作废
  • 年末净利润为负说明什么
  • 银行对公账户维护费申请表模板
  • 私企银行有哪几家
  • 会计凭证会计账簿与账务处理程序
  • xp电脑搜索文件为什么搜索不出来
  • 从硬盘安装系统
  • vmware虚拟机怎么卸载不了
  • 解决磁盘被写保护的方法
  • win1021h2正式版发布日期
  • mgaqdesk.exe进程有什么作用 mgaqdesk进程查询
  • 手机ssh远程连接服务器
  • 网络连接受限怎么处理win8
  • 新闻客户端app
  • linux中的shell编程
  • vue 瀑布流
  • node.js中实现同步操作的3种实现方法
  • css固定在底部
  • jquery遍历radio并选中
  • unity里面如何删除一个项目
  • jquery给td设置内容
  • great 搬运工
  • unity2020怎么导入资源
  • js 队列
  • 税务局有哪些职务名称
  • 地方税务局分局局长级别
  • 税务部门放管服
  • 武汉 工资 税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设