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

  • 一般纳税人出租不动产增值税税率
  • 实际退税额怎么算
  • 不动产租赁服务属于现代服务吗
  • 待认证进项税额认证以后怎么做分录
  • 递延所得税资产和递延所得税负债
  • 居民企业参股外国企业信息报告表怎么删除
  • 暂估一直不来票,没有纳税调整怎么办
  • 企业销售软件需要结转成本吗
  • 动物园的动物算野生动物吗
  • 企业所得税汇算清缴退税分录
  • 董事费监事费个税计算
  • 留存收益筹资的优缺点
  • 公司代缴员工个税
  • 企业为什么要签订集体合同
  • 增值税普通发票需要交税吗
  • 企业清算企业所得税税率
  • 统借统还账务处理流程
  • 公司出租商铺要交哪些税
  • 出口企业收到的货款是人民币还是美元
  • 新会计准则开办费的账务处理
  • 销售费用广告费存在哪些问题
  • 单位发的奖金怎样交个税
  • 一般纳税人增值税及附加税费申报表怎么填
  • 利润表适用执行小企业
  • ca证书延期不了
  • 以前月份个税没交怎么办
  • 企业所得税减免税额计算公式
  • 工程结算收入以前年度多结转收入怎么处理?
  • 保安费用分录
  • 新版edge浏览器文字不显示
  • 收不回的心
  • 产负债表的负债项目,显示了企业所负担债务的
  • php数组函数大全
  • win7为什么显示多重网络
  • 留存收益怎么计算,它属于企业的什么资金?
  • mce文件是什么软件
  • 销售产品取得收入
  • 其他综合收益要交企业所得税吗
  • imu模型
  • pytorch新手入门
  • php公众号开发框架
  • 小规模公司卖车怎么开票
  • 一般人转小规模政策到什么时候
  • 票据带息和不带息
  • python poetry如何创建项目
  • 合并资产负债表图片
  • SQL查询数据库中表的某一列
  • microsoft SQL server 2014可以删吗
  • sqlserver 数据迁移
  • 使用积分换取物的软件
  • 单位集体旅游算工资吗
  • 简易计税办法的有
  • 存货周转次数越高好还是越低好
  • 多交的社保退回多久能到账
  • 差旅费算人工费吗
  • 绿化植物税率
  • 食品算日用品吗
  • asp.net select
  • win7一直弹广告怎么办
  • 最新bios界面
  • ubuntu 20.04 服务器
  • xp系统进程
  • 怎样禁用ie
  • win7系统补丁包
  • win10 sp3
  • Win10系统照片应该打不开
  • win10预览版绿屏重启解决
  • linux 日历
  • win10系统如何创建新用户
  • c# opengl 3d
  • node.js安装后自带哪个工具
  • ajaxfrom表单提交
  • pycharm怎么学
  • 短信发送器
  • jquery 右键菜单
  • 2022河南省地方专项计划分数线
  • 企业自己开的增值发票
  • 本期预缴税额怎么填
  • 河南地税税率怎么计算
  • 主题党日活动标题副标题格式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设