axios在实际项目中的使用介绍

1.axios本身就封装了各种数据请求的方法

 1 执行 GET 请求
 2
 3 // 为给定 ID 的 user 创建请求
 4 axios.get(‘/user?ID=12345‘)
 5   .then(function (response) {
 6     console.log(response);
 7   })
 8   .catch(function (error) {
 9     console.log(error);
10   });
11
12 // 可选地,上面的请求可以这样做
13 axios.get(‘/user‘, {
14     params: {
15       ID: 12345
16     }
17   })
18   .then(function (response) {
19     console.log(response);
20   })
21   .catch(function (error) {
22     console.log(error);
23   });
24
25 执行 POST 请求
26
27 axios.post(‘/user‘, {
28     firstName: ‘Fred‘,
29     lastName: ‘Flintstone‘
30   })
31   .then(function (response) {
32     console.log(response);
33   })
34   .catch(function (error) {
35     console.log(error);
36   });

2.这里我们根据axios提供的别名,进行调整

 1 新建一个目录叫baseUrl,接着新建一个文件叫baseUrl.js
 2 1)首先我们在开发过程中,会有不同的环境,这里指的是,后端会在不同的环境给我们提供对应的接口(开发环境,测试环境,灰度,线上)这个时候,我们就要对接口的baseUrl做统一处理(这样代码每推到一个环境,我们就不用做任何改变)
 3 // 获取api的baseUrl
 4 export default function getBaseUrl () {
 5   let [baseUrl, urls, protocol] = [‘开发环境的api的baseUrl‘, location.href.toLowerCase(), ‘http://‘]
 6 //判断协议,看是http还是https
 7   if (location.protocol === ‘https:‘) {
 8     protocol = ‘https://‘
 9   }
10 //一般api的baseUrl是和域名相同的,这里我们就通过域名来判断
11   if (urls.match(/测试环境的baseUrl/) && urls.match(/测试环境的baseUrl/)[0] === ‘测试环境的域名‘) {
12     baseUrl = protocol + ‘测试环境的域名‘
13   }
14 //线上的
15   if (urls.match(/线上环境的域名/) && urls.match(/线上环境的域名/)[0] === ‘线上环境的域名‘) {
16     baseUrl = protocol + ‘线上的域名‘
17   }
18   return baseUrl
19 }

3.现在我们根据axios提供的请求别名,处理两个我们常用的请求方法

 1 新建一个文件就叫axios.js
 2 1)首先我们使用es6提供的方法,引入axios和我们封装的getBaseUrl方法
 3 import axios from ‘axios‘
 4 import getBaseUrl from ‘文件路径‘
 5
 6 2)配置config
 7 let baseUrl = getBaseUrl()
 8 //这里我们只介绍这两个配置项,其他的不做详细解释,想要查看更多内容请参考官方文档
 9 const config ={
10      //baseURL将自动加在url(这个url也就是‘/‘的路径)上
11      baseURL:baseUrl,
12      //表示跨域请求时是否需要使用凭证,默认是false,但是对于一些,有登陆时效或者cookie凭证的请求时,这个最好加上
13      withCredentials: false
14 }
15
16 3)处理get请求传递过来的参数(因为get请求的参数是拼接在请求地址上的,所以这里我们需要手动处理一下get请求的url)
17 let urlEncode = (url, data) => {
18   if (typeof (url) === ‘undefined‘ || url === null || url === ‘‘) return ‘‘
19   if (typeof (data) === ‘undefined‘ || data === null || typeof (data) !== ‘object‘) return url
20   url += (url.indexOf(‘?‘) !== -1) ? ‘‘ : ‘?‘
21   for (let k in data) {
22     url += ((url.indexOf(‘=‘) !== -1) ? ‘&‘ : ‘‘) + k + ‘=‘ + encodeURI(data[k])
23   }
24   return url
25 }
26
27 4)封装post和get请求
28
29 const get = (url, params) => {
30      //这里的url是请求数据的传递过来的
31      url = urlEncode(url, params)
32      return axios.get(url,config)
33 }
34
35 consot post = (url, params) => {
36      return axios.post(url, params, config)
37 }
38
39 5)将post和get方法暴露出去
40
41 export {
42      get,
43      post
44 }

4.根据不同的接口封装不同的请求方法(这个方法是用来直接获取数据的)

1 1)引入我们第三部处理好的post和get请求方法
2 import * as axios from ‘文件路径‘
3
4 2)封装
5 const Logins = params => axios.post(‘/user/login‘, params)
6
7 const List = params => axios.get(‘/list‘, params)

5.在组件中使用

 1 1)引入我们第四步处理好的方法(需要什么引入什么)
 2 import { Logins, List } from ‘文件路径‘
 3 _Login () {
 4 // 测试
 5 Logins({
 6   user_name: ‘user_name‘,
 7   pass: ‘pass‘
 8 }).then(data => {
 9 if (data.data.code === ‘0‘) {
10   console.log(data)
11 }
12 })
13 }
14 ......
时间: 2024-10-17 18:33:37

axios在实际项目中的使用介绍的相关文章

ABP项目中的使用AutoMapper

AutoMapper之ABP项目中的使用 最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMapper只要用来数据转换,在园里已经有很多这方面文章了,本文主要介绍其在实际项目常用总结,以及在ABP项目中的应用介绍.AutoMapper应用非常简单,大家稍微看下文档就可以上手,但是性能不好啊,所以一般用在后台项目,对外的项目千万不要用.就那NOP来说吧,它也是把AutoMapper放在后台项目

Chart.js在Laravel项目中的应用

本文为转载,原文:Chart.js在Laravel项目中的应用 介绍 Chart.js是一个HTML5图表库,使用canvas元素来展示各式各样的客户端图表,支持折线图.柱形图.雷达图.饼图.环形图等, 本文将介绍如何在laravel项目中使用chart.js 安装 可以通过以下命令在 npm 或 bower 中来安装chart.js. npm install chart.js --save bower install chart.js --save 可以在你的项目中使用 CDN link. h

如何在程序开发项目中选择合适的 JavaScript 框架,节省时间和成本的9款极佳的JavaScript框架介绍

从技术上来看,iOS,Android 和 Windows Phone 上的移动应用是使用不同的程序语言开发的,iOS 应用使用 Objective-C,Android 应用使用 Java,而 Windows Phone 应用使用 .NET. .随着 JavaScript,CSS 和 HTML 知识技能的提升,相信你也可以构建一个超赞的移动应用.在这篇博客里,我们将会介绍一些极好的 JavaScript 移动应用程序开发框架. 说到网络开发,就不得不说 JavaScript,这是一款很有前途的程序

Android的学习之路(二)项目中原生文件的使用场景和文件介绍

1.src文件:java源代码存放目录 2.gen 文件:自动生成所有由android开发工具自动生成的文件,目录中最重要的就是R.java文件,这个文件由android开 发工具自动产生的.android开发工具会自动根据你存放res目录的资源,同步更新修稿R.java文件,正因为 R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java.R.java文件在应用中起到了字典的作 用,它包含了各种资源的ID,通过R.java,应用可以很方便的找到对应资源, 2.1R.java 

SPServices介绍之一:将SPServices添加到SharePoint项目中

分类: SPSerivces2014-09-21 04:03 233人阅读 评论(0) 收藏 举报 sharepoint 2013javascriptSPServices开源库 SPServices - JQuery Libraries for SharePoint Web Services是一个基于JQuery的开源库,可以到CodePlex上下载:点击打开链接. 这个库可以使开发者更方便的调用SharePoint提供的Web Services,并且全都是客户端代码,不需要在服务端安装,轻巧快

简单介绍在C# 项目中使用 redis

搜索了一圈, 发现没有比较全面且简单的介绍如何在C#项目中使用redis的, 大部分都是零碎的文章,稍微组织了一下,希望对要用redis的人有帮助. 前提 1. Redis is an open source, BSD licensed, advanced key-value store, 简单说用来缓存数据,更多信息参照官网 http://redis.io/,很多大网站都在用这个, 参照 http://redis.io/topics/whos-using-redis. 2. Redis官方是没

软件开发工程师(JAVA)中级考试大纲-----四(四)Log4J的原理及配置;Log4J常用的API;在项目中应用日志框架Log4J关键类和接口介绍;Java properties配置文件log

log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 1定义 log4j--log for java(java的日志) 在强调可重用组件开发的今天,除了

在vue项目中的axios使用配置记录

默认vue项目中已经安装axios,基于element-ui开发,主要记录配置的相关. axiosConfig.js import Vue from 'vue' import axios from 'axios' import qs from 'qs' import { Message, Loading } from 'element-ui' // 响应时间 axios.defaults.timeout = 5 * 1000 // 配置cookie // axios.defaults.withC

1000多个项目中的十大JavaScript错误以及如何避免

通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个.下面会向大家介绍这些错误发生的原因以及如何防止. 对于这些错误发生的次数,我们是通过收集的数据统计得出的.Rollbar 会收集每个项目中的所有错误,并总结每个错误发生的次数,然后通过各个错误的特征进行分组. 下图是发生次数最多的10大 JavaScript 错误: 下面开始深入探讨每个错误发生的情况,以便确定导致错误发生的原因以及如何避免. 1.   Uncaught TypeError: Cann