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>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值