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

  • 快手看不到播放量(快手看不到播放量怎么回事)

    快手看不到播放量(快手看不到播放量怎么回事)

  • xr双卡信号不稳定(xr双卡信号不稳怎么办)

    xr双卡信号不稳定(xr双卡信号不稳怎么办)

  • 国际抖音怎么播放不了(国际抖音怎么直播)

    国际抖音怎么播放不了(国际抖音怎么直播)

  • zarchiver解压文件出错(zarchiver解压文件损坏)

    zarchiver解压文件出错(zarchiver解压文件损坏)

  • cad偏移命令无法偏移(cad偏移命令无法使用)

    cad偏移命令无法偏移(cad偏移命令无法使用)

  • 怎么看微信是否在电脑上登录(怎么看微信是否被屏蔽)

    怎么看微信是否在电脑上登录(怎么看微信是否被屏蔽)

  • 内存插槽13和24区别(内存插槽13和24哪个好)

    内存插槽13和24区别(内存插槽13和24哪个好)

  • 苹果手机半屏有什么用(iphone屏幕半屏)

    苹果手机半屏有什么用(iphone屏幕半屏)

  • 手机可以用紫外线灯照射吗(手机可以用紫外线照射吗)

    手机可以用紫外线灯照射吗(手机可以用紫外线照射吗)

  • 苹果11拍照九宫格怎么设置(苹果11拍照九宫格线是什么作用)

    苹果11拍照九宫格怎么设置(苹果11拍照九宫格线是什么作用)

  • iphone信号显示edge(iphone信号显示1x什么意思)

    iphone信号显示edge(iphone信号显示1x什么意思)

  • 路由器reset是什么意思(路由器reset功能有什么用)

    路由器reset是什么意思(路由器reset功能有什么用)

  • 苹果11发热(苹果11发热怎么回事)

    苹果11发热(苹果11发热怎么回事)

  • 苹果8p机身长多少厘米(苹果8p手机机长多少厘米)

    苹果8p机身长多少厘米(苹果8p手机机长多少厘米)

  • 淘宝开团提醒会扣钱吗(淘宝开团提醒会一直响吗)

    淘宝开团提醒会扣钱吗(淘宝开团提醒会一直响吗)

  • 手机悬浮球有什么用(手机悬浮球作用)

    手机悬浮球有什么用(手机悬浮球作用)

  • 手机自动报时怎么设置(手机自动报时间怎么设置)

    手机自动报时怎么设置(手机自动报时间怎么设置)

  • 虎牙号在哪看(虎牙在哪看虎牙号)

    虎牙号在哪看(虎牙在哪看虎牙号)

  • 怎么叙述5g时代的意义(5g的时代是一个怎样的时代)

    怎么叙述5g时代的意义(5g的时代是一个怎样的时代)

  • 栈的初始状态说明什么(栈的初始状态一定为空吗)

    栈的初始状态说明什么(栈的初始状态一定为空吗)

  • p20上市时间(p20pro上市时间和价格)

    p20上市时间(p20pro上市时间和价格)

  • iphonexs max尺寸(iphonexs max尺寸与14pro比较)

    iphonexs max尺寸(iphonexs max尺寸与14pro比较)

  • xr的录屏在哪(苹果手机录屏在哪里找)

    xr的录屏在哪(苹果手机录屏在哪里找)

  • 开启了共享文件夹在其他设备却看不到(开启共享文件夹)

    开启了共享文件夹在其他设备却看不到(开启共享文件夹)

  • Win11安卓子系统运行App全屏已显示桌面主题背景壁纸(win11安卓子系统在哪打开)

    Win11安卓子系统运行App全屏已显示桌面主题背景壁纸(win11安卓子系统在哪打开)

  • 企业所得税核定征收税率表最新
  • 未达起征点的增值税要交企业所得税吗
  • 进项税额转出要补所得税吗
  • 个体户能开增值税普通发票给单位吗?
  • 合同印花税怎么贴
  • 计提工资时金额是应发工资还是实发工资
  • 暂估资产会计处理
  • 个人所得税里累计专项扣除是什么意思
  • 房地产预收账款如何缴纳印花税
  • 二手房的折旧率怎么算
  • 贷款应计利息会计分录
  • 债权投资损失准备
  • 没通过认证的增值税发票是否能够记入成本抵扣
  • 银行收付款通知短信
  • 销售原材料的账务处理
  • 现金折扣税前扣除
  • 企业所得税征收标准2023
  • 生产企业没有进项税如何交增值税
  • 印花税是按含税还是不含税缴
  • 代开的专票怎么做账?
  • 往来账的作用
  • 增值税进项抵扣期限及认证期限
  • 销售方销售折让的会计处理
  • 商品进销差价的核算方法
  • 存货减值准备计提
  • 电脑桌面刷新反应迟钝
  • 六月雪的养殖方法和注意事项
  • 施工企业内部往来核算方法包括( )
  • 微pe工具箱怎么用
  • 软件服务费怎么算
  • 暂估营业成本怎做分录
  • mac上安装
  • linux 创建sh
  • msstat.exe - msstat是什么进程 有什么用
  • 即征即退增值税账务处理
  • 在vue3项目中自定义组件通常存放在
  • 进项票留底怎么做分录
  • php实现搜索的方式
  • 一只华莱士飞蛙掠过森林地面 (© Stephen Dalton/Minden Pictures)
  • typescript完全解读
  • 反向选择命令
  • 所得税的期初资产怎么算
  • 小微企业所得税如何填报
  • 职工薪酬在利润表哪里看
  • 利息收入凭证会计分录
  • 职工薪资包括
  • wordpress防盗链
  • 加班工资应如何算
  • 企业的净利润率
  • 如何判断有无运费险
  • 中标的工程交易怎么处理
  • 申报无票收入后期开票要冲回要备案吗
  • 缴纳水土保持补偿费分录是什么
  • 企业固定资产可以不提折旧吗
  • 员工食堂买菜怎么写分录
  • 代理运费增值税税率
  • 商业汇票的会计科目是什么
  • 不是公司股东的情况说明模板
  • 成本结转怎么结转
  • 一次性开票分期确认收入已什么做原始凭证
  • sql server随机数函数
  • 收集整理的近义词
  • office2016formac更新了什么 新版macoffice软件功能一览
  • ubuntu下安装windows
  • ssd安装centos7
  • 如何关闭win10自动升级win11
  • linux中keepalive
  • Win7安全模式怎么切换到正常模式
  • ES6 javascript中class类的get与set用法实例分析
  • 使用权资产
  • Windows设置在哪里
  • opengl怎么导入模型
  • ubuntu libtorch
  • angularjs1.5
  • jquery示例
  • shell脚本 su
  • 基于bootstrap的网站
  • [置顶]电影名字《收件人不详》
  • 税务局把我拉入黑名单了怎么办
  • 出口退税范围的货物
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设