Vue+axios封装请求实现前后端分离


Posted in Javascript onOctober 23, 2020

本文实例为大家分享了Vue+axios封装请求实现前后端分离的具体代码,供大家参考,具体内容如下

前言

我们需要进行前后端分离开发,那么前后端的跨域问题就是无可避免的问题,前后端的请求也是无可避免的,Vue之中有一个请求组件是axios,我们可以对axios进行封装作为我们请求的工具组件

# 一、封装axios
vue.config.js 配置文件

module.exports = {
 configureWebpack: {
 resolve: {
 alias: {
 api: '@/api',
 assets: '@/assets',
 components: '@/components',
 layouts: '@/layouts',
 router: '@/router',
 store: '@/store',
 utils: '@/utils',
 views: '@/views'
 }
 }
 },
 devServer: {
 //端口
 port: 8081,
 //后端接口
 proxy: {
 '/api': {
 target: 'http://localhost:8099', // 目标代理接口地址
 changeOrigin: true, // 开启代理,在本地创建一个虚拟服务端
 // ws: true, // 是否启用websockets
 pathRewrite: {
  '^/api': ''
 }
 }
 }
 }
}

request.js,封装组件

//配置axios
import axios from 'axios'

const instance = axios.create({
 baseURL: '/api',
 timeout: 6000
})


instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
//请求拦截器
instance.interceptors.request.use(
 function(config) {
 return config
 },
 function(error) {
 //对请求错误做些什么
 return Promise.reject(error)
 }
)
//响应拦截器
instance.interceptors.response.use(
 function(response) {
 return response.data
 },
 function(error) {
 //对响应错误做点什么
 return Promise.reject(error)
 }
)

export default function(method, url, data = '', config = '') {
 method = method.toLowerCase()
 if (method === 'post') {
 if (config !== '') {
 return instance.post(url, data, config)
 } else {
 return instance.post(url, data)
 }
 } else if (method === 'get') {
 return instance.get(url, {params: data})
 } else if (method === 'delete') {
 return instance.delete(url, {params: data})
 } else if (method === 'put') {
 return instance.put(url, data)
 } else {
 console.error('未知的method' + method)
 return false
 }
}

api.js,接口文件

import req from '@/utils/request'

/**
 * 批量查询
 * @param params
 */
export const list = params => req("get", "/resource/list", params);

具体的页面之中进行导入使用即可

总结

这就是vue中对于axios的初步封装使用,后续会持续更新

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
jquery 弹出层实现代码
Oct 30 Javascript
jQuery判断元素是否是隐藏的代码
Apr 24 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
实例代码讲解jquery easyui动态tab页
Nov 17 Javascript
js判断某个字符出现的次数的简单实例
Jun 03 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
Nov 28 Javascript
在vue中使用setInterval的方法示例
Apr 16 Javascript
javascript简单实现深浅拷贝过程详解
Oct 08 Javascript
vue之debounce属性被移除及处理详解
Nov 13 Javascript
构建一个JavaScript插件系统
Oct 20 #Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 #Javascript
原生js实现俄罗斯方块
Oct 20 #Javascript
React实现评论的添加和删除
Oct 20 #Javascript
基于JavaScript实现简单抽奖功能代码实例
Oct 20 #Javascript
微信小程序使用前置摄像头拍照
Oct 22 #Javascript
jQuery实现可以计算进制转换的计算器
Oct 19 #jQuery
You might like
php实现文件下载实例分享
2014/06/02 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
ES6 十大特性简介
2020/12/09 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
python异步任务队列示例
2014/04/01 Python
python简单分割文件的方法
2015/07/30 Python
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
python命令行工具Click快速掌握
2019/07/04 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
UGG英国官方网站:UGG UK
2018/02/08 全球购物
历史专业个人求职信范文
2013/12/07 职场文书
幼儿园教师国培感言
2014/02/02 职场文书
好人好事事迹材料
2014/02/12 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
军训阅兵新闻稿
2015/07/17 职场文书