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请求封装以及使用方法的主要内容,如果未能解决你的问题,请参考以下文章

为啥vue不使用ajax

Vue中使用Ajax与后台交互

Vue数据请求 axios vs fetch

vue中axios请求拦截器和响应拦截器 以及401状态处理

发送ajax请求的几种方法

Vue.js Ajax