Vue4.0使用mock
之前的版本好像是在根目录下搞个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) }) } }
参考: