Vue学习七:MockJs前端数据模拟

Mock.js 是前端常用的 模拟数据生成库 ,用来不用后端接口,前端自己造假数据开发。

核心作用

  1. 前后端分离:后端接口没好,前端先模拟数据开发、调试
  2. 生成随机假数据:名字、手机号、邮箱、日期、图片、文字等
  3. 拦截 Ajax 请求:替换真实接口,返回模拟数据
  4. 数据模板语法简单,易上手

常用随机数据

  • @cname 中文姓名
  • @id 身份证号
  • @phone 手机号
  • @email 邮箱
  • @datetime 日期时间
  • @cparagraph 中文段落
  • @image 随机图片

一句话总结

Mock.js = 前端假数据生成器 + 接口拦截器,让前端不用等后端。相当于后端的apipost

例子数据如下:

复制代码
//引入mockjs
import Mock from 'mockjs'
//使用mockjs模拟数据
Mock.mock('/product/search', {
    "ret":0,
    "data":
    {
        "mtime": "@datetime",//随机生成日期时间
        "score|1-800": 1,//随机生成1-800的数字
        "rank|1-100":  1,//随机生成1-100的数字
        "stars|1-5": 1,//随机生成1-5的数字
        "nickname": "@cname",//随机生成中文名字
        // 生成图片
        "img": "@image('200x100', '#ffcc33', '#FFF', 'png', 'Fast Mock')"
        //生成的数据仅跟|后的规则相关,:后的数据仅确认数据类型
    }
});

核心方法:

Mock.mock( rurl?, rtype?, template|function( options ) )

  • rurl:表示需要拦截的 URL,可以是 URL 字符串或 URL 正则

  • rtype:表示需要拦截的 Ajax 请求类型。例如 GET、POST、PUT、DELETE 等。

  • template:表示数据模板,可以是对象或字符串

  • function:表示用于生成响应数据的函数。

  • 设置延迟时间:

    复制代码
    // 延时400ms请求到数据
    Mock.setup({
        timeout: 400
    })
    
    // 延时200-600毫秒请求到数据
    Mock.setup({
        timeout: '200-600'
    })

    在mock/index.js配置好mock代码后,需要在main.js中导入mock组件

此处不使用import mock from './mock'是因为在main.js中没有显式的出现mock组件,所以会违反规则报错。此时仅引入mock组件的代码。

在App.vue中配置简单的axios请求,url绑定mock所设置的拦截路径/product/search

复制代码
<script>
import axios from 'axios'
export default {
  name: 'App',
  mounted: function(){
    axios.get("/product/search").then(res => {
      console.log(res)
    })
  }
}
</script>

返回的结果如下:

img图片可访问生成网站路径访问,也可提取到view层直接输出:

若在axios中要插入参数在访问链接中

需要在index.js中添加mock的RegExp方法:在路径中加上".*"表示适配任意变量。

具体使用可参考稀土掘金指南

mockjs 零基础、零门槛、一看就会使用指南【前言】 mockjs生成随机数据,实现前后端分离。 此文章详细介绍moc - 掘金

相关推荐
J船长18 分钟前
Spec Kit 入门:AI Agent 时代的规格驱动开发实践
前端
别动我齐刘海19 分钟前
Day6 unitree_G1人形机器人GMR—— MotionInput
c语言·c++·人工智能·学习·机器学习·机器人·github
程序员黑豆1 小时前
鸿蒙应用开发 @Builder 使用教程:从入门到精通
前端·harmonyos
CCYe、1 小时前
限流与配额:企业AI网关的工程实践
前端·人工智能
看谷秀1 小时前
arkts- 6 手势/沉浸式/深浅色/性能/组件补充/访问/js交互/通知/Native交互
前端·arkts
划船不慎掉水顺便摸鱼1 小时前
TipTap 不是编辑器,是编辑器构造器:ProseMirror 模型驱动的富文本架构
前端
小高0071 小时前
🔥🔥🔥TypeScript 7 正式版来了:别只看 10 倍速度,这 4 个迁移坑更值得注意
前端·javascript·面试
凉茶社1 小时前
shadcn/ui 默认改用 Base UI,Radix 被放弃了吗?
前端
万敏1 小时前
Vue3 全栈实战第四周:watch、nextTick、性能优化与 keep-alive 实战记录
vue.js·node.js·全栈
Vuji1 小时前
ReAct 与 Plan-Execute:两种 Agent 范式的实战对比
前端·agent