最佳实践:vue3项目实战中的接口调用方法(一)async/await用法 对axios二

优采云 发布时间: 2022-10-26 03:53

  最佳实践:vue3项目实战中的接口调用方法(一)async/await用法 对axios二

  Vue3 async和await联合调用接口在一篇文章中搞定

  点击进入vue专栏

  上一条推文描述了vue3项目实战中接口调用的相关知识点,并介绍了调用接口的流程和简要方法。点击查看vue3项目实战中接口的调用

  从本期文章开始,vue3项目实战中接口调用的三种方法会不定期更新。本期文章将重点介绍vue3的async和await实现异步请求接口

  (欢迎大佬们多多指教!)

  异步/等待定义

  在实际开发中,我们会遇到异步请求的问题。这时候异步请求的存在是很合理的。

  async 表示异步,await 表示等待,await 用于等待异步任务执行的结果。

  1. async/await 是一种编写异步代码的新方式(之前使用回调和promise)。

  2. async/await 是基于 Promise 的。

  3. async/await 和 promises 一样,也是非阻塞的。

  4. async/await 使异步代码看起来和行为更像同步代码。

  async/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() //调用函数

  这是一个请求后端接口并将数据返回到后端管理表的示例。

  模板部分代码:(UI组件库使用Ant Design Vue)

  示例 2:

  // 配置请求的基准URL地址

axios.defaults.baseURL = 'http:localhost:3000';

//axios请求接口

axios.get('adata').then(function(ret){

console.log(ret.data)

<p>

})

//async请求接口 await后面是Promise实例对象

async function queryData() {

var ret = await axios.get(&#39;adata&#39;);

// console.log(ret.data)

return ret.data;

}

queryData().then(function (data) { // 赋值过程

console.log(data)

})

//服务器端的接口

app.get(&#39;/adata&#39;, (req, res) => {

res.send(&#39;Hello axios!&#39;)

})

</p>

  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(&#39;login successfully&#39;)

message.success(&#39;login succesfully&#39;) // 数据验证通过弹出跳转成功提示框

// 用对话存储的方法set(送进去)一个token

window.sessionStorage.setItem(&#39;token&#39;,res.data.tokenValue) // token的位置从浏览器控制台中可以得到

router.push("/home") // 数据验证成功后跳转页面

} else {

message.error(&#39;请求失败 请重新输入&#39;) // 数据验证不成功则弹出错误提示框

console.log(&#39;error&#39;)

}

};

  表格数据:(参见示例 1 了解更多信息)

  处理多个异步请求

  

  示例 1:

  // 配置请求的基准URL地址

axios.defaults.baseURL = &#39;http://localhost:3000&#39;;

//async请求接口

async function queryData() {

var info = await axios.get(&#39;async1&#39;);

//axios传递给服务器/async2接口的info.data参数,用于接口内部判断

//传参格式:[ &#39;地址?属性名=属性值&#39; ]or [ &#39; 地址?对象= &#39; + &#39;对象.属性名&#39;]

var ret = await axios.get(&#39;async2?info=&#39; + info.data);

return ret.data;

}

queryData().then(function(data){

console.log(data)

})

//服务器端的接口

app.get(&#39;/async1&#39;, (req, res) => {

res.send(&#39;hello&#39;)

})

app.get(&#39;/async2&#39;, (req, res) => {

if (req.query.info == &#39;hello&#39;) {

res.send(&#39;async1的结果确实是hello&#39;)

} else {

res.send(&#39;error&#39;)

}

})

  示例 2:

  const datas = async ()=> {

await request.selectPies(Route.path.split(&#39;/&#39;)[3]).then(res=>{

states.ids = res.obj

console.log(res)

})

//查询发帖子用户信息

await request.selectUsers(states.ids).then(res=>{

console.log(res.obj)

})

}

datas()

  这里是 vue3 setup 语法糖中异步请求的使用。从代码来看,第二个接口需要用到第一个接口返回的数据,所以使用了异步请求。

  概括

  在前后端分离的开发模式下,我们需要访问后端接口。我们一定要明白什么是异步请求——在接口的访问中加一个顺序,防止它们无顺序限制地发送请求!

  以上就是vue3项目实战中接口调用方法的详解——async/await的使用。后面会时不时为剩下的两个接口调用方法fetch axios!!

  常用的方法:站长SEO中常用的到的工具

  SEO站长的常见查询

  我们的站长使用这些工具,可以让您的优化更加省时省力。所有东西都可以在搜索引擎中找到相关名称,这里不提供下载链接。

  1.分析事物

  一款流行的SEO工具,免费版,具有关键词分析过滤、关键词排名跟踪等功能,最强大的功能是分析关键词的竞争水平,包括获取前20名搜索引擎网站的竞争分析语句,即知敌,让你知道对手的情况网站,比如PR值,外链数,无论是DMOZ和yahoo的输入情况,页面标签的使用,还有一个简单的关键词优化难度,免费版的一些限制,比如:分析效果无法导出。

  2.反链检查

  一个网站工具,强力检查网站的反向链接,它可以准确找到链接到你网站的URL,也可以检查你的对手网站,然后创建相同的外部关联。链,缩短你的网站与对手的距离),与outbound连接,并给出相应的PR,OBL,FLAG值,这对于广大站长兄弟来说非常方便,便于优化。

  3.站点范围的死链接检查

  

  Xenu 是一个易于使用的全站死链接检查工具。

  4.火狐插件)

  方说,有50万个站长应用,通过它可以快速查看页面排名,快速查看页面的反向链接来自哪里。

  5.火狐插件)

  一个健壮的工具,在分析对手的信息时,它曾经在搜索引擎上被多次查询,但使用Quake可以很容易地查看到性能记录中的相关信息。

  6.外链对比

  外链查询比对工具,比雅虎外链查询更健壮,两者都是大名鼎鼎的moz开发的,被认为是用来替代基于自己的连接数据库的。访问者只能查询前200个连接,注册用户可以查询1000个连接。没有第一的表现)优秀。

  7.反向链接检查的东西

  

  是一个反接检查工具,和第二个一样),可以作为补偿。

  8. 关键词 排名检查工具

  专业人士常用的关键词排名检查工具,它可以“检查”和“查找”多个搜索引擎上的排名,包括yahoo、Bing、Ask和AOL,并跟踪搜索引擎上的排名效果。

  9.查看关键词排名

  检查搜索引擎排名的有用工具,它为您省去了自己检查搜索引擎性能页面的麻烦。

  10.自动增加外链

  自动添加反向链接的 网站。用户将反向链接代码放在页脚后,你的 URL 会自动链接到 PR 值比你高的相关内容页面,但你也需要链接到其他页面。相关页面有点类似于国内的批量连接通讯,对于正在做英文网站优化却苦苦寻找连接的站长来说,这是一个增加外链的好方法。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线