vue 封装axios以及使用中间代理 proxy
为什么需要封装呢?主要是为了更好管理项目以及增加复用性
1、首先在src文件夹下创建api文件夹 、 utils文件夹 、 server文件夹
api:创建一个index.js文件 用来存放接口地址
utils:用来存放公用js文件
server:用来存放请求的接口数据
2、在package.json文件中增加以下代码 【以下代码是中间代理作用】

3、在api文件中的index.js中写入 【api里面的命名全部为大写,用于区分】
const SAT_HOST = "http://localhost:8080";
/**
* 请求电影 正在热映影片数据
*/
const GET_PLAYING = "/ajax/movieOnInfoList"
记住一定要记得向外输出
export default{
SAT_HOST,
GET_PLAYING
}
在utils文件夹中创建http.js文件 封装 axios 【注:首先需要安装axios 不做赘述 (npm)】
import API from '../api';
import axios from 'axios'
export default function http({ url, method, data }) {
let options = {
url: url,
method: method,
baseURL: API.SAT_HOST,
timeout: 2000
}
if (method == 'GET') {
options.params = data
} else if (method == "POST") {
options.data = data
}
return axios(options)
}
在server文件夹中创建一个用于请求数据的js文件 ,文件名自取 代码如下
import API from '../api';
import http from '../utils/http.js'
export function getPlaying(){
return new Promise((resolve,reject)=>{
http({
url:API.GET_PLAYING,
method:'GET',
//用于写参数
data:{
}
})
.then(({data,status})=>{
if(status != 200){
return {}
}else{ let data2 = data resolve({ data:data2 })
console.log(data);
}
})
.catch(error=>{
console.log(error)
})
})
}
4、需要在哪个vue文件中引入接口数据
<template>
<div></div>
</template>
<script>引入接口数据到当前vue文件
import {getPlaying} from './server/movieList'
export default {
data(){
return{
}
},
created(){
getPlaying().then(({movieList})=>{
console.log(movieList)
})
}
}
</script>
<style>
</style>
vue 封装axios以及使用中间代理 proxy的更多相关文章
- Vue 封装axios(四种请求)及相关介绍(十三)
Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...
- vue封装axios
一.安装axios npm install --save axios 二.在src下面创建文件夹api=>api.js(接口集合)+http.js(封装的请求) 三.在main.js中引用api ...
- vue 封装 axios 和 各类的请求,以及引入 .vue 文件中使用
//src 底下建立 api 文件夹 // api 文件夹下建立 request,js 文件,文件内容复制下面这段代码即可 /** * ajax请求配置 */ import axios fro ...
- vue封装axios方法推荐)
目录结构: api.js export default { myTopic: '/api/subscribe-data/post/cat' } request.js import axios from ...
- vue cli+axios踩坑记录+拦截器使用,代理跨域proxy(更新)
16319 1.首先axios不支持vue.use()方式声明使用,看了所有近乎相同的axios文档都没有提到这一点建议方式 在main.js中如下声明使用 import axios from 'ax ...
- vue cli+axios踩坑记录+拦截器使用,代理跨域proxy
1.首先axios不支持vue.use()方式声明使用,看了所有近乎相同的axios文档都没有提到这一点 建议方式 在main.js中如下声明使用 import axios from 'axios'; ...
- Vue 给axios做个靠谱的封装(报错,鉴权,跳转,拦截,提示)
需求及实现 统一捕获接口报错 弹窗提示 报错重定向 基础鉴权 表单序列化 用法及封装 用法 // 服务层 , import默认会找该目录下index.js的文件,这个可能有小伙伴不知道可以去了解npm ...
- vue中Axios的封装和API接口的管理
前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...
- vue中axios 配置请求拦截功能 及请求方式如何封装
main.js 中: import axios from '................/axios' axios.js 中: //axios.js import Vue from 'vue' i ...
随机推荐
- Oracle学习(12):存储过程,函数和触发器
存储过程和存储函数 l存储在数据库中供全部用户程序调用的子程序叫存储过程.存储函数. 注意:存储过程与存储函数声明变量时,用的是as 而不是declare 存储过程与存储函数差别 存储过程不带有返 ...
- nyoj--1100--WAJUEJI which home strong!(bfs)
WAJUEJI which home strong! 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 在一个山沟里,姐弟俩同时考上了大学.但由于家里拮据,所以这并不是什么 ...
- bzoj 1556 墓地秘密 —— 状压DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1556 预处理出两个障碍四个方向之间的距离(转弯次数),就可以状压DP了: 但预处理很麻烦.. ...
- bzoj 1026 [ SCOI2009 ] windy数 —— 数位DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1026 蛮简单的数位DP,预处理 f[i][j] 表示 i 位数,以 j 开头的 windy ...
- RTP协议分析和详解
一.RTP协议分析 第1章. RTP概述 1.1. RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议).它是IETF提出的一个标准,对应的RF ...
- element快速开发建站的动态UI------优
网站快速成型工具 只为这样的你: Element,一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助你的网站快速成型 http://element.elem ...
- jFinal基于maven简单的demo
JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所有优势的同时再拥有ruby.py ...
- Cracking the Coding Interview 8.7
Given a infinite number of quarters(25cents), dimens(10cents), nickels(5cents) and pennies(1cent), w ...
- NGinx 负载均衡作用
1.负载均衡介绍: 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助.其工作模式为将外部发送来的请求均匀分配到对称结构中的 ...
- Java中final、finally、finalize的区别与用法
1.简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承.finally是异常处理语句结构的一部分,表示总是执行.finalize是Object类的一个方法,在垃 ...