我们从头开始,教你一步一步使用mock进行后端数据模拟。
1、首先我们创建vue项目:
通过vue create test_mock命令:
我们这里选择第三个:Manually select features,回车
这里通过键盘上的上下键上下移动,通过空格键选择。我们选择Babel,Router, Vuex这三个。
这里选择3.x 回车。
这里选择Y,回车。
这里选择默认回车。
这里还是n,回车。
最后项目创建完成。
我们通过cd test_mock进入项目,通过npm run serve启动项目。
启动后的项目如下图:
2、我们按ctrl+c键终止项目。
终端安装依赖:npm install mockjs。
再通过命令:cnpm i axios -S安装axios。
其原理如下图所示:
然后,我们在目录src文件下新建文件 --mock--mock.js。
如下图:
mock.js代码如下:
import Mock from 'mockjs'
let random = Mock.Random
random.extend({
constellation:function(date) {
var constellation = ['天秤座','双子座','处女座','白羊座','金牛座','巨蟹座','狮子座','天蝎座'];
return this.pick(constellation)
}
})
Mock.mock('http://localhost:8080/user', {
'name':'@name',
'email':"@email",
'age|1-10':5,
'introduce': random.province(),
'constellation': '@CONSTELLATION'
})
数据规范:Mock.mock('需要拦截的请求', { '属性名|生成规则': 属性值 }) /*生成规则可选*/
数据占位符:
用 @
来标识其后的字符串是 占位符。
占位符 引用的是 Mock.Random
中的方法。
Mock.Random 的方法在数据模板中称为『占位符』
3、需要数据模拟的页面AboutView.vue。位置在:src/views/AboutView.vue。
AboutView.vue代码如下:
<template>
<div>
<h1>我是About</h1>
<button @click="getUser()">点击获取用户信息</button>
</div>
</template>
<script>
import axios from 'axios'
import mock from '@/mock/mock.js'
export default {
name:'About',
methods: {
getUser() {
axios.get('http://localhost:8080/user')
.then(function(res) {
console.log(JSON.stringify(res.data))
})
.catch(function(res) {
alert(res)
})
}
}
}
</script>
启动项目后,mock 会根据请求 url 拦截对应请求并返回模拟数据: