vue.config.js请求数据

Posted web-gmy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue.config.js请求数据相关的知识,希望对你有一定的参考价值。

vue.config.js
let mockData = require("./mockData");
module.exports = {
  lintOnSave: false, // 是否开启ESLint
  devServer: {
    before(app) {
      // app express提供的
      mockData(app);
    }
  },
  productionSourceMap: false // 不产生sourcemap文件
};

建立mockData/index.js
function mockData(app) {
  app.get("/slider", (req, res) => {
    setTimeout(() => {
      res.json([
        {
          url: "http://www.didichuxing.com/",
          image:
            "//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide01.png"
        },
        {
          url: "http://www.didichuxing.com/",
          image:
            "//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide02.png"
        },
        {
          url: "http://www.didichuxing.com/",
          image:
            "//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide03.png"
        }
      ]);
    }, 2000);
  });
}
module.exports = mockData;

api/home.js
// 首页接口
import Ajax from "../util/request"; // 封装请求
// 轮播图接口
export const getSliders = () =>
  Ajax.request({
    url: "/slider"
  });
export default {};

store/module/home.js
import * as Types from "../mutations-types";
import { getSliders } from "../../api/home";
export default {
  namespaced: true,
  state: {
    sliders: []
  },
  actions: {
    async [Types.SET_SLIDER]({ commit }) {
      try {
        const sliders = await getSliders();
        commit(Types.SET_SLIDER, sliders);
      } catch (error) {
        console.log(error);
      }
    }
  },
  mutations: {
    // mutations 只用来修改state状态
    [Types.SET_SLIDER](state, payload) {
      state.sliders = [...payload];
    }
  }
};

组件使用Home.vue
<template>
  <div class="home">
    <!-- 轮播图 -->
    <cube-slide :data="sliders" />
  </div>
</template>
<script>
import * as Types from "../store/mutations-types";
import { createNamespacedHelpers } from "vuex";
const { mapActions, mapState } = createNamespacedHelpers("home");
export default {
  name: "home",
  created() {
    // 异步请求 不需要被监控的数据 初始化数据
    // this.$store.dispatch(`home/${Types.SET_SLIDER}`);
    this[Types.SET_SLIDER]();
  },
  computed: {
    ...mapState(["sliders"])
  },
  methods: {
    ...mapActions([Types.SET_SLIDER])
  }
};
</script>

以上是关于vue.config.js请求数据的主要内容,如果未能解决你的问题,请参考以下文章

Vue技术点整理-vue.config.js

开发环境Vue访问后端代码(前后端分离开发,端口不同下跨域访问)

vue.config.js中proxy配置

Vue-cli3.0项目下axios请求本地json文件的数据

Vue2使用axios,request.js和vue.config.js

vue.config.js的proxy为啥不起作用