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 相关文章推荐
自动检查并替换文本框内的字符
Jun 30 Javascript
JavaScript 创建对象和构造类实现代码
Jul 30 Javascript
js sort 二维数组排序的用法小结
Jan 24 Javascript
原生js和jquery实现图片轮播淡入淡出效果
Apr 23 Javascript
PassWord输入框代码分享
Jun 07 Javascript
浅谈vue项目可以从哪些方面进行优化
May 05 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
Vue+element-ui 实现表格的分页功能示例
Aug 18 Javascript
VUE搭建手机商城心得和遇到的坑
Feb 21 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
Jun 10 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
基于javascript原生判断DOM是否加载完毕
Oct 14 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 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
php实现网页端验证码功能
2017/07/11 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
wxPython事件驱动实例详解
2014/09/28 Python
python数据结构之图的实现方法
2015/07/08 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
机械设计及其自动化求职推荐信
2014/02/17 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
推普周活动总结
2014/08/28 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
vue项目支付功能代码详解
2022/02/18 Vue.js
MySQL时区造成时差问题
2022/04/13 MySQL