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 相关文章推荐
14个有用的Jquery技巧分享
Jan 08 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
javascript实现链接单选效果的方法
May 13 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
js实现浏览本地文件并显示扩展名的方法
Aug 17 Javascript
JavaScript学习总结之JS、AJAX应用
Jan 29 Javascript
js面向对象的写法
Feb 19 Javascript
JavaScript常用判断写法大全(推荐)
May 30 Javascript
JS未跨域操作iframe里的DOM
Jun 01 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
Feb 16 Javascript
Vue3不支持Filters过滤器的问题
Sep 24 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常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
JavaScript DOM基础
2015/04/13 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
详解Python多线程下的list
2020/07/03 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
诚信考试倡议书
2014/04/15 职场文书
年终考核实施方案
2014/05/26 职场文书
经典毕业生求职信
2014/07/12 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
Python基础之元类详解
2021/04/29 Python
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android