学习mock:mock在vue里怎么用?

76 阅读1分钟

学习要点:

利用mockjs就是经过mock模拟服务器响应,要在项目当中拦截请求而且用mockjs返回数据。通常是经过webpackdevServer的before属性作拦截

步骤:

1、前期准备工作

1.1、创建Vue项目
vue create mock-demo
1.2、安装依赖
    //使用axios发送  ajax
        cnpm install axios --save
    //使用mockjs产生随机数据
        cnpm install mockjs --save-dev
    //使用json5解决json文件,无法添加注释问题
        cnpm install json5 --save-dev

2、配置mock以及devServer拦截

2.1、进入Vue项目文件夹
2.2、创建mock文件夹,在mock文件夹下建立index.js

mock/index.js的代码如下

const Mock = require('mockjs')
​
module.exports = function (app) {
  if (process.env.MOCK == 'true') {      //此处设置了一个MOCK开关,只需在.env.development里配置MOCK = true/false
    // node中的express框架
    // 参数1: 接口地址;参数2:服务器处理函数
    app.use('/user/userInfo', (req, res) => {    //
      // 通过Mock  随机生成一个对象
      var data = Mock.mock({
        id: '@id()',
        username: '@cname()',
        date: '@date(yyyy-MM-dd)',
        description: '@paragraph()',
        email: '@email()',
        'age|18-40': 0
      })
      // console.log(data)
      // 将模拟的数据转成json格式返回给浏览器
      res.json(data)
    })
  }
}
2.3、在vue.config.js进行配置如下
module.exports = {
  devServer: {            //devServer是一个webpack插件,只能用于开发环境
    // devServer在发送请求时,会先走到before指定的函数中进行处理,如果before中没有对应的接口路由,才会请求外网等
    before: require('./mock/index.js')
  }
}
2.4、App.vue中代码
<template>
  <div>Hello</div>
</template>
<script>
import axios from 'axios'
export default {
  created() {
    axios.get('/user/userInfo').then(result=>{     //发送对于/user/userInfo接口的请求,最终会被mock提前拦截
      console.log('mock数据↓');
      console.log(result.data);
    })
  }
}
</script>
<style>
</style>

3、运行查看结果

3.1、运行代码
npm run serve
//查看http://localhost:8080/,会看到返回的结果为一个对象,对象的属性为mock生成的假数据

学习参考:blog.csdn.net/weixin_4667…