之前的版本好像是在根目录下搞个static目录啥的来使用mock,这个版本好像不能这样用了。

  • 先安装

` npm install mockjs axios `

` npm install axios-mock-adapter –save-dev `

  • 建一个放数据的文件

比如:src/mock/data/index.js

// import Mock from 'mockjs'
let homeData = {
  city: '北京',
  swiperList: [
    { id: '0001', imgUrl: 'http://mp-piao-admincp.qunarzz.com/mp_piao_admin_mp_piao_admin/admin/201911/1d8faa9f4d49b77ca1e61e2b478260f7.jpg_750x200_25cf76e2.jpg' },
    { id: '0002', imgUrl: 'http://mp-piao-admincp.qunarzz.com/mp_piao_admin_mp_piao_admin/admin/201912/37c4edf7c033ada7b61a1f9d0acffd08.jpg_750x200_3223c943.jpg' },
    { id: '0003', imgUrl: 'http://mp-piao-admincp.qunarzz.com/mp_piao_admin_mp_piao_admin/admin/201912/d6df0db510d7b9aaa3d9ce4cffafeca1.jpg_750x200_abb38f14.jpg' }
  ]
}

export {
  homeData
}

这是个简单做法,官网上提供了一些Mock的方法来生成数据。

  • 建一个处理请求的文件

比如:src/mock/index.js

import axios from 'axios'
import MockAdapter from 'axios-mock-adapter'
// import Mock from 'mockjs'
import {
  homeData
} from './data'
export default {
  start () {
    let mock = new MockAdapter(axios) // 创建 MockAdapter 实例
    mock.onGet('/homeData').reply(config => { //  config 指 前台传过来的值
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve([200, {
            homeData
          }])
        }, 200)
      })
    })
  }
}

这个大概就相当于服务器处理请求的文件吧

  • 建一个前端的api文件

    将api统一放这个文件,方便管理。比如src/api/api.js

    import axios from 'axios'
    export const getHomeData = params => {
      return axios.get(`/homeData`, {
        params: params
      })
    }
    
  • 使用

    import { getHomeData } from '@/api/api'
    export default {
      created () { 
        getHomeData().then(res => {
          console.log(res)
        })
      }
    }
    

参考: