关于mock数据的重要性,就不用多说了吧,用过的人自然懂得,话不多说,先上官网:mockjs.com/
那么如何再我们自己的vue项目中使用mock呢,接下来就捋一下:
1.安装mock
npm install --save mockjs
2.自己写模拟数据(如果有现成的,也可以直接放到自己的项目中),模拟数据,其实就是json数据,示例如下:
[
{
"id": "1",
"imgUrl": "/images/banner1.jpg"
},
{
"id": "2",
"imgUrl": "/images/banner2.jpg"
},
{
"id": "3",
"imgUrl": "/images/banner3.jpg"
},
{
"id": "4",
"imgUrl": "/images/banner4.jpg"
}
]
3.在我们项目中创建mock文件夹,存放json数据,项目结构如下:
4.同时我们也要在mock文件夹中创建一个js文件,mockServer.js,开始正式模拟数据
//引入mockjs开始模拟数据
import Mock from 'mockjs'
// 在webpack中,图片json不需要对外暴露(里面不能书写export关键字)
// 这些资源默认对外暴露
//引入数据
import banner from './banner.json'
import floor from './floor.json'
//第一个参数:接口的地址
//第二个参数:向这个接口发送请求获取到的数据
// 中间默认是get请求
Mock.mock('/mock/banner',{code:200,data:banner})
//mock插件:中间默认是get请求
Mock.mock('/mock/floor',{code:200,data:floor})
注意:
-
1. 我们刚才写的json文件时没有向外暴露的,因为 在webpack中图片和json文件时不需要向外暴露的,默认就暴露了
-
2. mockServer.js也是不需要向外暴露的,不需要写export
5.mockServer.js没有向外暴露,那我们项目中应该如何使用呢?直接在main.js中引入即可: main.js
import '@/mock/mockServer.js'
6.我们在项目中都二次封装axios,然后打开我们封装axios的文件,代码如下:
我们设置的请求的接口都是以 /api开始 但是我们使用mock,都是以 /mock 开始,所以这块是不符合的,那么改怎么办呢,我们只需要把二次封装axios的代码重新复制一份,然后新建一个js,mockRequest.js,给新建的mockRequest.js中保存一份即可,但要把 /api 修改为 /mock,修改后的代码如下:
7.接下来我们就该请求mock接口了
注意
1.引入mockRequest.js
2 .使用mockrequest请求
8.最后我们只需要在需要的组件中调用即可
到此,mock的使用方法就差不多了
值得注意的是,mock官网第一页就说 生成随机数据 拦截ajax请求 mock的接口是不会向后台发送请求的,打开我们的network也是看不到请求的