mockjs在vue中的应用

1,018 阅读2分钟

要后端干嘛?mockjs搞起来啊

一、mockjs是什么以及应用场景

1.场景介绍

采用前后端分离的项目开发模式,前端开发人员在写好各种界面之后,需要请求后端的接口,把数据请求出来,再进行进一步的处理,最后渲染到页面相应的地方。但是,如果前端开发在完成了各种界面之后,后端开发还没有把实际的接口写好,那就没有办法请求到真实的数据,那是不是意味着前端开发的工作就停滞了呢?为了避免这种情况的出现,前端开发可以写模拟的接口,通过访问模拟的接口获取假数据,从而实现数据处理以渲染,等后端开发把真实的接口写好之后,用真实的接口替换模拟接口即可。mockjs可以用来实现这一需求。

2.mockjs介绍

mockjs是一款模拟数据生成器,通过随机数据,模拟各种场景,不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据,让前端攻城师独立于后端进行开发。官方文档:Mock.js

二、vue中使用mockjs

1.脚手架vue-cli搭建vue项目

具体操作可以参考 vue脚手架vue-cli

// 全局安装 vue-cli
npm i -g vue-cli
// 创建并初始化项目
 vue init webpack mock-test
// 进入项目目录
cd mock-test

2.安装axios以及mockjs

//使用axios来发起http请求
npm install axios --save
//安装依赖mockjs
npm install mockjs --save-dev

3.在main.js文件下引入axios/mock.js

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
import './mock/mock.js';

Vue.prototype.$axios = axios

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

4.在src目录下新建mock文件夹,mock文件夹下新建mock.js文件

import Mock from 'mockjs'
//写法一
// const template = {
//   'code': "200",
//   'title': 'Syntax Demo',
//   'desc': 'this is description'
// }
// Mock.mock('/user', /post|get/i, template)

//写法二
Mock.mock("/list","get",()=>{
    return [
        {
            name:"苏明哲",
            sex:"男"
        },
        {
            name:"苏明成",
            sex:"男"
        }
    ]
});

具体的语法要参照官方文档学习

5.调用模拟接口

我这里为了方便,就不新建文件来验证接口调用,我直接在用vue-cli创建的项目中原有的‘’HelloWorld.vue‘’文件中的created( )函数里验证接口调用,你也可以新建文件来验证

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <h2>Essential Links</h2>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  created () {
    this.$axios.get('/list').then(res => {
      console.log(res.data)
    })
  },
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

6.执行命令npm run dev运行项目,浏览器控制台查看console输出结果如下

从上面结果可以看到,接口调用成功,成功返回模拟数据