mockjs
Mock.js实现的功能
- 基于 数据模板 生成数据
- 基于 HTML模板 生成数据
- 拦截并模拟 Ajax请求
让前端独立于后端进行开发
[mockjs 文档]https://github.com/nuysoft/Mock/wiki
现在前端获取数据有2种方式:
- 使用proxy代理,直接获取接口数据
- 使用mockjs,获取随机数据
引入项目
关于mockjs的用法直接看文档有详细介绍,这里写的是如何引入项目,使开发使用mockjs,线上环境走正常流程
有以下三种实现方式:
1.在webpack配置中加上环境变量,入口文件中根据是否生产环境来判断是否使用mockjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15//webpack.dev.config
new webpack.DefinePlugin({
'process.env': config.dev.env
});
//entry.js
if(process.env.NODE_ENV == 'production'){
const mock = require('mock.js')
}
//mock.js
import Mock from 'mockjs'
Mock.mock( rurl, template )2.在webpack.dev.conf.js配置文件中把写好的mock.js文件单独打包一份,在页面中引入,实现开发环境下引入脚本。
1
2
3
4
5
6
7
8
9var config = {
entry: {
app: '入口',
vendor: ['mock.js'] //第三方库
},
plugins: [
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.bundle.js')//这是妮第三方库打包生成的文件
]
}3.这个方法其实没有真正使用到mockjs,只是在发送请求的时候代理到自己的express中,然后返回需要的数据,具体用法如下:
1 |
|
我用的是第二种写法,能够满足各种需求。
个人觉得mockjs不仅可以用在拦截ajax返回随机数据这方面,还可以用来做很好的单元测试工具。