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);
      }
    }

  

原文地址:https://www.cnblogs.com/dyy-dida/p/11110003.html

时间: 2024-11-03 21:01:40

vue 中 ajax请求封装以及使用方法的相关文章

vue中数据请求的三种方法

注意请求可能存在跨域问题,需要去配置好 这三种建议使用axios 1.resource Vue 要实现异步加载需要使用到 vue-resource 库. Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求. 先导入一个线上cdn的地址,当然还可以去npm安装,但个人觉得这种方便 <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></scri

vue中ajax请求发送

示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> spa

javascript中Ajax请求的封装代码

/****************************ajax请求 start**************************************/ function ajaxClass(_url, _successCallback, _failureCallback, _urlParameters, _callbackParams, _async, _charset, _timeout, _frequency, _requestTimes, _frame) { /** * AJAX

vue03----生命周期、nextTick()、ref、filter、computed、vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到什么问题、踩过的坑)

### 1.vue的组件和实例都有生命周期,而且是一样的 生命周期:(组件从创建到销毁的过程) 创建 挂载 更新 销毁 组件到达某一个阶段就会自动触发某一些函数,这个函数就叫生命周期的钩子函数. 创建:组件创建的时候触发 beforeCreate created     组件刚创建的数据请求 挂载:创建完成挂载前后触发 beforeMount mounted     DOM的初始化操作 更新:数据发生改变的时候触发 beforeUpdate updated     数据的变化监听,尽量不要在这里

jQuery 中 ajax 请求数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名和文件图片路径问题 ... ajax01.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> ajax小例子 </title> </head> <body> <!--

从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.Vue发送Aj

Vue中ajax返回的结果赋值

这是第二次在项目中遇到此问题,ajax请求成功后在success函数中为Vue实例data里的变量赋值,却失败了 new Vue({ el:'#app', data:{ msg:'' }, created:function(){ $.ajax({ url:'', data:'', dataType:'json', success:function(res){ this.msg = res.data; } }) } }) 原因在于在ajax的success函数中,this的指向不再是vue的实例

聊聊 Vue 中 axios 的封装

聊聊 Vue 中 axios 的封装 axios 是 Vue 官方推荐的一个 HTTP 库,用 axios 官方简介来介绍它,就是: Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 作为一个优秀的 HTTP 库,axios 打败了曾经由 Vue 官方团队维护的 vue-resource,获得了 Vue 作者尤小右的大力推荐,成为了 Vue 项目中 HTTP 库的最佳选择. 虽然,axios 是个优秀的 HTTP 库,但是,直接在项目中使用并不是那

ajax请求封装调用

/* * ajax请求封装 */ function _ajax(url,data,callback){ try { $.ajax({ url:url, type:"POST", data:data, dataType:'json', success:function(data){ try { if(data.code == 0){ mui.alert('保存成功') }else{ mui.toast('保存失败'); } } catch(e) { mui.toast('获取数据失败')