vue使用mock进行后端数据模拟

我们从头开始,教你一步一步使用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 拦截对应请求并返回模拟数据:

经验分享 程序员 微信小程序 职场和发展