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 相关文章推荐
javascript IFrame 强制刷新代码
Jul 23 Javascript
js监听鼠标事件控制textarea输入字符串的个数
Sep 29 Javascript
JavaScript 巧学巧用
May 23 Javascript
JS实现的文件拖拽上传功能示例
May 21 Javascript
webpack项目轻松混用css module的方法
Jun 12 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
Jul 23 Javascript
jQuery事件多次绑定与解绑问题实例分析
Feb 19 jQuery
详解使用React制作一个模态框
Mar 14 Javascript
js前端面试之同步与异步问题详解
Apr 03 Javascript
React精髓!一篇全概括小结(急速)
May 23 Javascript
Javascript Worker子线程代码实例
Feb 20 Javascript
vue-router 2.0 跳转之router.push()用法说明
Aug 12 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
文件上传的实现
2006/10/09 PHP
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
简单三步,搞掂内存泄漏
2007/03/10 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
Vue函数式组件-你值得拥有
2019/05/09 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
python实现学员管理系统
2019/02/26 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
建筑工程自我鉴定
2013/10/18 职场文书
拉丁舞学习者的自我评价
2013/10/27 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
教学改革实施方案
2014/03/31 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
小学大队委竞选口号
2015/12/25 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js