vue 中 ajax请求封装以及使用方法
Posted dyy-dida
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 中 ajax请求封装以及使用方法相关的知识,希望对你有一定的参考价值。
async/await
1)async/await场景
这是一个用同步的思维来解决异步问题的方案,当前端接口调用需要等到接口返回值以后渲染页面时。
2)名词解释
>async
async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行, async 函数返回的是一个promise 对象。
>await
await的含义为等待。意思就是代码需要等待await后面的函数运行完并且有了返回结果之后,才继续执行下面的代码。这正是同步的效果
例子如下:await要放在async中,并且await后面的函数运行后必须返回一个Promise对象才能实现同步的效果。
1.api/ajax.js
import axios from ‘axios‘ export default function ajax(url = ‘‘,params = ,type = ‘GET‘) let promise; return new Promise((resolve ,reject)=> // 判断请求的方式 if(type == ‘GET‘) let paramsStr = ‘‘; Object.keys(params).forEach( key=> paramsStr += key+‘=‘+params[key]+‘&‘; ) if(paramsStr != ‘‘) paramsStr = paramsStr.substr(0,paramsStr.lastIndexOf(‘&‘)); url+=‘?‘+paramsStr; promise = axios.get(url); else promise = axios.post(url,params) promise.then((res)=> resolve(res.data) ).catch((err)=> reject(err); ) )
2.api/index.js
import ajax from ‘./ajax‘ const BASE_URL = ‘https://localhost:3000/‘; //请求方法 export const getHomeCasual = ()=>ajax(BASE_URL+‘Homeapp.do‘);
3.组件中调用请求方法
import getHomeCasual from ‘./../api/index‘ created() this.getHomeData(); , methods: // 请求数据 async/await=>异步转为同步 async getHomeData () const result = await getHomeCasual(); console.log(result);
以上是关于vue 中 ajax请求封装以及使用方法的主要内容,如果未能解决你的问题,请参考以下文章