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 全角转换实现代码
Jul 17 Javascript
Js+Jq获取URL参数的集中方法示例代码
May 20 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 Javascript
vue代理和跨域问题的解决
Jul 18 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
Sep 21 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
Aug 20 Javascript
JavaScript Array对象使用方法解析
Sep 24 Javascript
vue 翻页组件vue-flip-page效果
Feb 05 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
Jul 28 Javascript
JavaScript 实现继承的几种方式
Feb 19 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
python中__call__方法示例分析
2014/10/11 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
python读取和保存视频文件
2018/04/16 Python
python脚本实现验证码识别
2018/06/07 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
django列表筛选功能的实现代码
2020/03/27 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
师范生自荐信
2013/10/27 职场文书
教师产假请假条
2014/04/10 职场文书
文明班级申报材料
2014/12/24 职场文书