为什么需要封装呢?主要是为了更好管理项目以及增加复用性

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的更多相关文章

  1. Vue 封装axios(四种请求)及相关介绍(十三)

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  2. vue封装axios

    一.安装axios npm install --save axios 二.在src下面创建文件夹api=>api.js(接口集合)+http.js(封装的请求) 三.在main.js中引用api ...

  3. vue 封装 axios 和 各类的请求,以及引入 .vue 文件中使用

    //src 底下建立 api 文件夹 // api 文件夹下建立 request,js 文件,文件内容复制下面这段代码即可   /**  * ajax请求配置  */ import axios fro ...

  4. vue封装axios方法推荐)

    目录结构: api.js export default { myTopic: '/api/subscribe-data/post/cat' } request.js import axios from ...

  5. vue cli+axios踩坑记录+拦截器使用,代理跨域proxy(更新)

    16319 1.首先axios不支持vue.use()方式声明使用,看了所有近乎相同的axios文档都没有提到这一点建议方式 在main.js中如下声明使用 import axios from 'ax ...

  6. vue cli+axios踩坑记录+拦截器使用,代理跨域proxy

    1.首先axios不支持vue.use()方式声明使用,看了所有近乎相同的axios文档都没有提到这一点 建议方式 在main.js中如下声明使用 import axios from 'axios'; ...

  7. Vue 给axios做个靠谱的封装(报错,鉴权,跳转,拦截,提示)

    需求及实现 统一捕获接口报错 弹窗提示 报错重定向 基础鉴权 表单序列化 用法及封装 用法 // 服务层 , import默认会找该目录下index.js的文件,这个可能有小伙伴不知道可以去了解npm ...

  8. vue中Axios的封装和API接口的管理

    前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...

  9. vue中axios 配置请求拦截功能 及请求方式如何封装

    main.js 中: import axios from '................/axios' axios.js 中: //axios.js import Vue from 'vue' i ...

随机推荐

  1. Cocos2d-x飞机大战教程笔记

    咳咳~跟着大神的教程学做Cocos2d-x的飞机大战...鉴于我是那种跟着教程都会出非常多错的人,所以还是一路跟着做些笔记比較好.并且因为是用课余时间,所以仅仅能断断续续地做,写下来也好让自己别忘记~ ...

  2. mac下安装tensorflow及入门例子

    https://www.tensorflow.org/install/install_mac 使用virtualenv安装,virtualenv相当于使tensorflow运行在虚拟机环境下. 需要使 ...

  3. uboot 解压缩

    在uboot中进行解压缩是非常实用的 uboot中完毕delay 用户进行交互的段 if(BootType == '3') { char *argv[3]; printf("   \n3: ...

  4. u-boot的内存分布和全局数据结构

    U-boot,除非在RAM中调试,一般情况下都是从flash中执行一段代码,然后将flash中储存的代码和数据搬移到ram中,然后跳转到ram中执行.当然这应该也是一般的bootloader的执行方式 ...

  5. 第16课 “远程 Git文档库” 的基础操作

    16-1  “远程Git文档库”  的功能 如果  “本地Git文档库” 和  “远程Git文档库”  是存储在不同的计算机中,它们之前传送数据可以通过HTTP/HTTPS.SSH.GIT proto ...

  6. git常见冲突及解决办法

    1.内容冲突 产生冲突的原因:两个用户修改了同一个文件的同一块区域,git会报告内容冲突.我们常见的都是这种. 解决冲突的办法:编辑冲突文件,修改冲突. 例如:冲突文件test.c test.c发生冲 ...

  7. codevs1253 超级市场(dp)

    1253 超级市场  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description 某人喜欢按照自己的规则去市场买菜,他每天 ...

  8. thymeleaf公共页面元素抽取

    1.抽取公共片段 使用thymeleaf的th:fragment为样抽取的公共片段命名, 如下把div标签命名为 copy,就可以获取到div整个里的内容<div th:fragment=&qu ...

  9. CMake之CMakeLists.txt编写入门

    自定义变量 主要有隐式定义和显式定义两种. 隐式定义的一个例子是PROJECT指令,它会隐式的定义< projectname >_BINARY_DIR和< projectname & ...

  10. linux ssh文件输

    在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...