本文实例讲述了vue简单封装axios插件和接口的统一管理操作。分享给大家供大家参考,具体如下:
现在很多公司的项目都是前后端分离的项目,那么说到前后端分离,必定会有ajax请求来获得后台的数据。
在做jquery项目的时候,我们都会使用它封装好的方法来直接发起ajax请求。
在vue项目中,我们使用最多的就是axios这个插件,下面就简单的封装下这个插件并且把接口给统一化管理。
一、安装和配置
1.在项目根目录下打开终端安装
npm install axios -S
2.安装完成以后,在src目录下创建utils目录,用来存放用到的所有工具和插件(个人习惯)
3.在utils目录创建request.js文件,用来配置axios,代码如下:
import axios from 'axios' //引入axios const service = axios.create({ // api 的 baseUrl 就是每个请求前面相同的地址,这个地方因为我配置了环境,所以直接取环境里的配置 baseURL: process.env.BASE_URL, timeout: 5000 // 请求超时时间 }) // request拦截器 service.interceptors.request.use( config => { //这里是每个请求的设置,比如每个请求都携带一个token,或者当为post请求时,引入qs格式化参数。 return config }, error => { console.log('请求失败:' + error) Promise.reject(error) } ) // response 拦截器 service.interceptors.response.use( response => { const res = response.data //这个地方的code自己与后台约定(可以根据状态码,设置自己要提示的信息) if (res._code !== '10000') { //在此可以加几种比较普遍的设置,然后可以把单独的返到页面中设置 return Promise.reject(res) } else { return response.data } }, error => { console.log('响应失败:' + error) return Promise.reject(error) } ) export default service
二、使用
1.在src目录下创建api文件夹,api文件夹与页面文件夹目录结构相同,名字最好也其相同语义的名字(个人习惯,方便管理)
2.比如我的页面结构里有个manage目录,里面有个user.vue页面,那么相同的在api目录下,也应有个manage目录,里面有个user.js文件
3.user.js代码如下:
//引入配置好的axios import request from '@/utils/request' //获取用户列表 export const getUserList = params => { return request({ url: '你的接口地址', method: 'get', params }) } //增加用户 export const addUser = data => { return request({ url: '你的接口地址', method: 'post', data }) } //删除用户 export const delUser = data => { return request({ url: '你的接口地址', method: 'post', data }) } //修改用户信息 export const addUserInfo = data => { return request({ url: '你的接口地址', method: 'post', data }) } //查询用户详细信息 export const getUserDetail = params => { return request({ url: '你的接口地址', method: 'get', params }) }
4.user.vue代码如下:
<script> import userApi from '@/api/manage/user' export default { name: "User", data(){ return {} }, created(){ //不需要传递参数 userApi.getUserList() .then( res => { //成功回调 }) .catch( err => { //失败回调 }) //需要传递参数 let userInfo = { name: '张三', age: 18 } userApi.addUser(userInfo) .then( res => { //成功回调 }) .catch( err => { //失败回调 }) } } </script>
附常见状态码:
const status = error.response.status; let msg = ""; switch (status) { case 400: msg = "错误的请求" break; case 401: msg = "未授权,请重新登录" break; case 403: msg = "拒绝访问" break; case 404: msg = "未找到该接口地址" break; case 405: msg = "请求未被允许" break; case 408: msg = "请求超时" break; case 500: msg = "服务端出错了" break; case 501: msg = "网络未实现" break; case 502: msg = "网络错误" break; case 503: msg = "服务不可用" break; case 504: msg = "网络超时" break; case 505: msg = "http版本不支持" break; default: msg = "连接错误" break; }
希望本文所述对大家vue.js程序设计有所帮助。
本文向大家介绍vue中Axios的封装与API接口的管理详解,包括了vue中Axios的封装与API接口的管理详解的使用技巧和注意事项,需要的朋友参考一下 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题,我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护。 一、axios的封装 在vue项目中,和后台交互获
本文向大家介绍vue axios 简单封装以及思考,包括了vue axios 简单封装以及思考的使用技巧和注意事项,需要的朋友参考一下 axios 简介 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征: --------------------------------------------------------------------
本文向大家介绍vue axios 二次封装的示例代码,包括了vue axios 二次封装的示例代码的使用技巧和注意事项,需要的朋友参考一下 这段时间告诉项目需要,用到了vue。 刚开始搭框架的时候用的是vue-resource后面看到官方推荐axios就换过来了 顺便封装了一下 说明 1、为防止发起请求时,当前正在进行的相同请求,在请求拦截器中加入了hash判断,将相同请求url拦截 2、将axi
本文向大家介绍vue 里面使用axios 和封装的示例代码,包括了vue 里面使用axios 和封装的示例代码的使用技巧和注意事项,需要的朋友参考一下 vue官方推荐使用 axios发送请求 首先上需求 1.需要封装全局调用 2.返回一个promise对象 3.错误全局统一处理 4.除了登录界面token带入头部 5.登录时候把用户信息自动存到vuex里面 首先上封装代码 调用方式 接收2个参数
本文向大家介绍Vue二次封装axios为插件使用详解,包括了Vue二次封装axios为插件使用详解的使用技巧和注意事项,需要的朋友参考一下 照例先贴上 axios 的 gitHub 地址 不管用什么方式获取数据,对于一个项目来说,代码一定要利于维护其次是一定要写的优美,因此加上一层封装是必要的 vuejs2.0 已经不再维护 vue-resource,vuejs2.0 已经使用了 axios,这也
本文向大家介绍JS简单实现获取元素的封装操作示例,包括了JS简单实现获取元素的封装操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS简单实现获取元素的封装操作。分享给大家供大家参考,具体如下: JS封装获取元素 js的获取元素: ID:document.getElementById(); class:document.getElementsByName()[]; Tag:docu