• 封装项目中的接口


    1.首先创建一个http文件夹,里面创建三个文件,分别是env.js  request.js  api.js

    env.js来管理环境    request封装方法的主要文件   api.js用来管理接口

    在env.js来配置环境

    export default {
      //开发环境
      dev: {
        baseUrl: "https://localhost:8080"
      },
      //测试环境
      test: {
        baseUrl: "https://test.365msmk.com"
      },
      //生产环境
      prod: {
        baseUrl: "https://www.365msmk.com"
      }
    };

    2.在request.js进行axios拦截,执行请求前和请求后进行的一些操作

    import axios from "axios";
    
    import env from "./env.js";
    
    const vipUrl = "/api/app/";
    
    //创建一个axios实例
    const service = axios.create({
      baseURL: env.prod.baseUrl + vipUrl
    });
    
    //请求拦截
    
    service.interceptors.request.use(
      config => {
        config.headers["deviceType"] = "H5";
        console.log("请求的数据:", config);
        return config;
      },
      error => {
        return Promise.reject("出错啦");
      }
    );
    
    //响应拦截
    service.interceptors.response.use(
      response => {
        //根据返回不同的状态码来做后续处理
        console.log("返回的数据", response);
        return response;
      },
      error => {
        return Promise.reject("返回报错");
      }
    );
    
    export default service;

    3.最后在api.js中封装接口并抛出

    import request from "./request";
    
    //封装业务的各种接口
    
    /**
     * 获取轮播图
     */
    
    export function getBanners() {
      return request({
        url: "/banner",
        method: "GET"
      });
    }
    }

    4.最后在组件中引用,请求数据

    <template>
      <div class="home">
         
      </div>
    </template>
    
    <script>
    import { banner} from "../http/api";
    export default {
      name: "Home",
      mixins:[GetUserDataMixIn],
      data() {
        return {
          page: 1,    //定义接口中要传的当前页数
          limit: 10,   //定义接口中要传的数据条数
          list: []
        };
      },
      
      created() {
        this.getBannersData();
      },
     
      methods: {
        //获取课程列表
        getBannersData() {
          getBanners({
            page: this.page,
            limit: this.limit
          }).then(res => {
            //console.log("课程列表", res);
            let {
              code,
              data: { list }
            } = res.data;
            if (code === 200) {
              console.log("list:", list);
              this.list = list;
            }
          });
        },
    };
    </script>
    
    <style lang="scss">
    </style>

    最后就可以获取数据了

  • 相关阅读:
    android studio 模拟器关机重启操作
    一个大小写引发的灾难 --碎片的最佳实践4.5章节
    安卓项目一直卡在Project setup: reading from cache
    Android Studio制作九宫格位图(Nine-patch)
    android studio添加依赖
    安卓模拟器emulator-5554[OFFLINE]
    GPS翻转周期
    Android Studio 可视化界面 (Design)和文本界面(Text)的切换
    全国-地区-邮政编码
    全国-省-市-编码
  • 原文地址:https://www.cnblogs.com/p1234/p/13628985.html
Copyright © 2020-2023  润新知