前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >前端接口模拟工具Mock.js上手实践

前端接口模拟工具Mock.js上手实践

原创
作者头像
CS逍遥剑仙
发布于 2019-11-01 16:56:40
发布于 2019-11-01 16:56:40
4.2K1
举报
文章被收录于专栏:禅林阆苑禅林阆苑

前端接口模拟工具Mock.js上手实践

[toc]

Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxiaoyaojianxian Email: sunjianfeng@csxiaoyao.com

1. 概念

在前后端开发过程中,常常会遇到前后端进度不一致的情况,如果前端停下来等后端接口调试完再继续开发会大大降低前端的开发效率。Mock.js 是一款成熟强大的接口模拟工具,能够生成随机数据,拦截 Ajax 请求并返回,真正做到前后端分离。

2. vue 工程引入 mock.js

在前端工程项目中引入 mock.js 是非常方便的,以 vue-cli 构建的工程为例,首先安装 axiosmockjs

代码语言:txt
AI代码解释
复制
$ yarn add axios mockjs

可以在项目 src 目录下建立 data 文件夹用于统一存放 ajax 请求,例如在 data/api.js 中建立一个测试用的请求:

代码语言:txt
AI代码解释
复制
import axios from 'axios'
const apiTable = {
  log: '/test/log' // get
}
const log = (data = '') => {
  return new Promise((resolve, reject) => {
    axios.get(apiTable.log, {
      params: {
        data: data
      }
    }).then(res => {
      resolve(res)
    }).catch(err => {
      console.log(err)
      reject(err)
    })
  })
}
export { log }

可以在同级目录下的 data/apiMock.js 中建立 mock 请求:

代码语言:txt
AI代码解释
复制
import Mock from 'mockjs'
// 使用mockjs模拟数据
Mock.mock(/\/test\/log/, 'get', (req, res) => {
  const data = Mock.mock({
    'code': 0,
    'msg': 'success',
    'data|1-10': [{
      'name': '@cname',
      'id|+1': 1,
      'age|10-60': 0, // 10-60以内的随机数,0用来确定类型
      'birthday': '@date("yyyy-MM-dd")', // 年月日
      'city': '@city(true)' // 中国城市
    }]
  })
  return data
})
export default Mock

然后,在入口文件 main.js 中引用这个 mock 文件就实现了接口的mock:

代码语言:txt
AI代码解释
复制
// ...
import axios from 'axios'
Vue.prototype.$axios = axios
if (process.env.NODE_ENV === 'development') {
  require('@/data/apiMock')
}
// ...

此时,在 dev server 下,组件中发起 ajax 请求,浏览器的开发者工具中已经抓不到对应的请求,而组件中对请求的调用和原来无异:

代码语言:txt
AI代码解释
复制
import { log } from '@/data/api'
export default {
  created () {
    log('csxiaoyao').then(res => {
      console.log(res)
    }).catch(err => {
      console.log('err: ', err)
    })
  }
}

至此,mockjs 的引入大功告成。

3. mockjs 基础语法

Mock.js 提供了丰富的随机数据模拟,非常实用,语法规范包括两部分:

  1. 数据模板定义规范(Data Template Definition,DTD)
  2. 数据占位符定义规范(Data Placeholder Definition,DPD)

官方文档有详细的介绍 https://github.com/nuysoft/Mock/wiki,还提供了丰富的样例 http://mockjs.com/examples.html,此处不再赘述。

sign.jpg
sign.jpg

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
试试这个https://github.com/xingliuhua/easyserver,欢迎点star
试试这个https://github.com/xingliuhua/easyserver,欢迎点star
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
VueJS中使用前端虚拟接口Mock.js
Mock.js是一个基于NodeJS的用来模拟API的工具,可以方便让前端开发人员在开发过程中用来模拟API接口,方便与后端的联调工作,尤其方便在Vue项目中使用。
IT大咖说
2020/09/23
1.5K0
VueJS中使用前端虚拟接口Mock.js
Vue笔记:使用 mock.js 模拟数据
在我们的项目实际开发过程中,后端的接口往往是较晚才会提供出来,并且还要写接口文档,如果前端的开发都要等到接口开发完成才开始就非常影响项目整体开发进度了,mock.js 的出现使前后端分离并行开发成为可能。使用 mock.js,前端调试可以模拟后台接口调用,返回我们定义的数据,解放了前后端开发的屏障。使用 mock.js 的过程如下:
朝雨忆轻尘
2019/06/19
2.3K0
前端开发之mock.js使用——前后端分离,生成随机数据
本篇目标在于先简单了解mock.js,然后可以简单使用,运行出第一个Mock.js的“HelloWorld”。
啦啦啦啦
2023/02/27
1.7K0
搭建一个低配版的Mock Server
通过阅读本文,你将对Mock的使用有一定的了解,对前后端分离的概念有了更深一步的认识,对Koa的使用有一定的了解。本文先从背景出发去抛出“我们为什么要用Mock?”的灵魂拷问,紧接着我们通过Mock在前后端的使用来进行实战落地,最后我们再总结回顾,展望高配版的Mock Server。
江涛学编程
2020/09/10
1.2K0
掌握Mock摆脱后端同学的束缚
当下采用前后端分离模式开发Web应用已经成为气候,在开发阶段有一个不成文的规定则是 项目开发后端先行 但是作为前端开发工程师的我们,难道在搭建完页面后只能等待后端的接口么?这样的话我们则完全被后端开发限制住了。
全栈程序员站长
2022/08/31
4600
掌握Mock摆脱后端同学的束缚
使用Mock.js生成前端测试数据
前端工程师在做前后端分离的项目的时,有时候接口未开发完成,或者开发环境不允许使用接口,这时候就需要前端工程师自己模拟数据了,模拟数据的方式有很多种,今天给大家介绍一款npm包,Mock.js。
挥刀北上
2019/07/19
1.1K0
【mock】后端不来过夜半,闲敲mock落灯花 (mockjs+Vuex+Vue实战)
mock的由来【假】 赵师秀:南宋时期的一位前端工程师 诗词背景:在一个梅雨纷纷的夜晚,正处于项目编码阶段,书童却带来消息:写后端的李秀才在几个时辰前就赶往临安度假去了,!此时手头仅有一个简
啦啦啦321
2018/01/03
1.4K0
【mock】后端不来过夜半,闲敲mock落灯花 (mockjs+Vuex+Vue实战)
【总结】1727- 前端开发中如何高效地模拟数据?
在开发和测试工作中,mock 数据非常实用。mock 数据是指在开发和测试环境中,使用虚拟数据代替真实数据。mock 数据能避免因后端接口未完成或数据异常等原因导致的开发和测试工作无法进行。
pingan8787
2023/09/01
4860
【总结】1727- 前端开发中如何高效地模拟数据?
MockJs使用分享
  在前后端分离的时代,项目开发测试中我们常常因为前后端完成模块功能时间不一致而导致开发效率的降低,尤其是需要接口对接之时。鉴于此, MockJs应时而生,对此痛点予以重击。 本篇案例则属于一个简单的示范案例,在脱离后端(在没与后端联调前)怎么自己模拟数据来调试前端内容。
流眸
2020/03/30
1.5K0
MockJs使用分享
如何使用Mock.js来模拟后端接口
HelloWorldZ
2024/03/20
2830
如何使用Mock.js来模拟后端接口
从零开始用 Axios 请求后端接口
对于前端同学来说,请求后端接口是一个非常通用的东西。在十几年前的时候,我们还用 Ajax 去请求后端接口。但在 2023 年的今天,很多框架都很成熟了,我们有了更加快捷的方式 —— Axios 框架。
陈树义
2023/12/21
4550
Vue + Element UI 实现权限管理系统 前端篇(三):工具模块封装
使用axios发起一个请求是比较简单的事情,但是axios没有进行封装复用,项目越来越大,会引起越来越多的代码冗余,让代码变得越来越难维护。所以我们在这里先对 axios 进行二次封装,使项目中各个组件能够复用请求,让代码变得更容易维护。
朝雨忆轻尘
2019/06/19
5K1
Vue + Element UI 实现权限管理系统 前端篇(三):工具模块封装
你知道这样的mock吗
mock数据用过的人一定不陌生,他的好处也是层出不穷,比如下面就是一段对mockjs很好的描述:
饼干_
2022/09/19
4890
前端自动化测试实践03—jest异步处理&mock
一般项目代码中会有不少异步 ajax 请求,例如测试下面 async.js 中的代码
CS逍遥剑仙
2019/10/31
5.2K0
前端Mock技术的场景应用与实战指南
在当今的软件开发领域,前端开发的重要性日益凸显。随着互联网技术的飞速发展,用户对网站和应用程序的交互性和响应速度提出了更高的要求。为了满足这些需求,前端开发者需要不断地优化代码,提高开发效率。然而,在实际开发过程中,前端开发者常常会遇到后端接口尚未完成的情况,这给前端开发带来了很大的挑战。
Front_Yue
2024/09/23
1250
前端Mock技术的场景应用与实战指南
Mock.js前端开发cgi数据模拟工具
1. 什么是Mockjs http://mockjs.com/ ??Mockjs是个能够拦截页面ajax请求并模拟返回数据的小工具,借助Mockjs,前端开发中在后台测试接口还没有给的时候就可以自己拦
IMWeb前端团队
2017/12/29
2.1K0
vue3+element-plus+router+vuex+axios从零开始搭建(3)
现在在store文件夹下面新建四个文件state.js, mutations.js, getters.js, actions.js
solate
2021/06/22
3.7K0
vue3+element-plus+router+vuex+axios从零开始搭建(3)
教你玩转Vue和Django的前后端分离
今天中秋节,先祝大家节日愉快,不在父母身边的都打个电话关心一下吧,我们最容易忽略的人恰恰是最爱我们的父母。
somenzz
2020/11/25
2.9K0
教你玩转Vue和Django的前后端分离
H5 Mock Server 汇总
简单来讲,就是API (也就是服务器接口)没有写好前提下,前端无法进行调试,Mock Server 就是用来模拟Api接口返回JSON数据的服务!
White feathe
2021/12/08
5730
H5 Mock Server 汇总
用 Vue 和 Django 快速搭建前后端分离项目
Web 开发中前后端分离已经是常规性做法,但是不少初学者不太熟悉如何前后端分离,搭建 Demo 的时候遇到的问题也比较多,今天就来分享一下如何用 Vue 和 Django 快速搭建前后端分离项目。
somenzz
2022/10/25
4.9K0
用 Vue 和 Django 快速搭建前后端分离项目
相关推荐
VueJS中使用前端虚拟接口Mock.js
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文